/* Shared responsive type scale. Loaded after the structural stylesheet. */
/* Start with one complete face; heading-font.js promotes whole titles to STXingkai only after checking every glyph. */
@font-face{
  font-family:"NCAC Local Xingkai";
  src:local("STXingkai"),local("华文行楷");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"NCAC Glyph Probe";
  src:url("/assets/fonts/ncac-glyph-probe.woff") format("woff");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face{
  font-family:"NCAC Brush Kai";
  src:url("/assets/fonts/ncac-brush-kai.woff") format("woff");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
:root{
  --display-font:"NCAC Brush Kai","KaiTi","Kaiti SC","Kaiti TC",serif;
  --type-body:1rem;
  --type-reading:1.0625rem;
  --type-small:.875rem;
  --type-label:.75rem;
  --type-card:clamp(1.1875rem,1.05rem + .35vw,1.375rem);
  --type-section:clamp(1.875rem,1.5rem + 1vw,2.25rem);
  --type-page:clamp(2rem,1.6rem + 1.5vw,2.75rem);
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:var(--type-body);line-height:1.85;letter-spacing:0}
p{margin-bottom:1.1em}
h1,h2,h3,h4{overflow-wrap:break-word}
h1,h2,.vision-statement,.hero-bottom,.footer-main .footer-motto{
  font-family:var(--display-font);
  font-weight:400;
  font-style:normal;
  font-synthesis:none;
}
h1{font-size:var(--type-page);line-height:1.45;letter-spacing:.035em}
h2,.resources h2,.giving h2{font-size:var(--type-section);line-height:1.5;letter-spacing:.03em}
h3{font-size:var(--type-card);line-height:1.6;letter-spacing:0}
button,input,textarea,select{font-size:1rem;line-height:1.6}
input,textarea,select{min-height:48px}
label{font-size:1rem;line-height:1.7}
.button{font-size:.9375rem;line-height:1.6;min-height:48px;align-items:center}
.text-link{font-size:.9375rem;line-height:1.7;padding:8px 0}
.small,.notice,.document-note,.video-hint,.resource-note,.visit-panel small{font-size:var(--type-small);line-height:1.85}
.eyebrow,.label{font-size:var(--type-label);line-height:1.6;letter-spacing:.1em}
.eyebrow{margin-bottom:20px}
.topline{font-size:.6875rem;line-height:1.7;letter-spacing:.1em}
.topline a{font-size:.75rem;letter-spacing:.03em}
.brand{font-size:clamp(1rem,.85rem + .4vw,1.3125rem);line-height:1.45;letter-spacing:.025em}
.brand small{font-size:.625rem;line-height:1.6;letter-spacing:.025em;margin-top:3px}
header nav a{font-size:.875rem;line-height:1.5}
.hero h1{font-size:clamp(2.125rem,1.4rem + 2.6vw,3.5rem);line-height:1.5;letter-spacing:.04em}
.hero .intro{font-size:clamp(1rem,.94rem + .2vw,1.125rem);line-height:1.95;max-width:38em}
.hero-link{font-size:.9375rem;line-height:1.7}
.hero-bottom{font-size:clamp(1.1875rem,1.1rem + .3vw,1.375rem);line-height:1.7;letter-spacing:.06em}
.hero-bottom i{font-size:.875rem;line-height:1.7;letter-spacing:.025em}
.visit-strip strong{font-size:1.25rem;line-height:1.6}
.visit-strip small{font-size:.875rem;line-height:1.7}
.lead{font-size:clamp(1.125rem,1rem + .4vw,1.375rem);line-height:1.8}
.about-copy p{line-height:1.95}
.vision .identity-heading{font-size:1rem;line-height:1.7;letter-spacing:.04em}
.identity-heading [lang=en]{font-size:.75rem;letter-spacing:.12em}
.vision-statement{font-size:clamp(1.625rem,1.2rem + 1.3vw,2.25rem);line-height:1.7;letter-spacing:.02em}
.identity-panel .verse-note{font-size:.875rem;line-height:1.8}
.mission-panel .mission h3,.values-panel .values h3{font-size:var(--type-card);line-height:1.65;letter-spacing:.025em}
.mission-panel .mission p,.values-panel .values p{font-size:1rem;line-height:1.9}
.values-panel .values p span{white-space:normal}
.section-head>p{font-size:1rem;line-height:1.85;max-width:28em}
.life-card{display:flex;flex-direction:column;min-width:0;padding:28px 24px}
.life-card h3{font-size:var(--type-card);line-height:1.6}
.life-card p{font-size:1rem;line-height:1.85;margin-bottom:22px}
.life-card .card-link{font-size:.9375rem;line-height:1.7;margin-top:auto;padding-top:18px}
.life-card .fellowship-description span{display:block}
.resource-list b{font-size:var(--type-card);line-height:1.6}
.resource-list small{font-size:.75rem;line-height:1.7;letter-spacing:.1em}
.resource-list em{font-size:.9375rem;line-height:1.8}
.contact-lines a{font-size:1rem;line-height:1.8;overflow-wrap:anywhere}
.visit-panel p{font-size:1rem;line-height:1.85}
.visit-panel h3{font-size:1.125rem;line-height:1.65}
.time{font-size:clamp(3.75rem,3rem + 2vw,4.75rem);line-height:1.25}
.time span{font-size:1rem}
summary{font-size:1rem;line-height:1.7;min-height:32px;align-items:center}
.copy-row strong{font-size:1.125rem;line-height:1.7;overflow-wrap:anywhere}
.copy-row button{font-size:.875rem;min-height:44px;padding:8px 12px}
.footer-main h3{font-size:1.25rem;line-height:1.6}
.footer-main p{font-size:.875rem;line-height:1.7}
.footer-main .footer-heading{font-size:.9375rem;line-height:1.6;letter-spacing:.025em;margin-bottom:10px}
.footer-main a{font-size:.875rem;line-height:1.7;min-height:40px;padding:8px 0;margin-top:2px}
.footer-main .footer-motto{font-size:1.25rem;line-height:1.7;letter-spacing:.08em;margin-top:6px}
.footer-bottom{font-size:.75rem;line-height:1.7}
.footer-bottom a{min-height:40px;padding:8px 0}
.page-banner h1{font-size:var(--type-page);line-height:1.5;letter-spacing:.035em}
.page-banner p:not(.eyebrow){font-size:1rem;line-height:1.85;max-width:48em}
.breadcrumbs{font-size:.875rem;line-height:1.8;gap:6px 10px}
.breadcrumbs a{padding:4px 0}
.doc h3{font-size:1.25rem;line-height:1.7;margin:12px 0}
.doc p{font-size:1rem;line-height:1.85}
.doc a,.doc>span:last-child{font-size:.9375rem;line-height:1.7;min-height:44px;display:inline-flex;align-items:center}
.doc .label{font-size:.75rem;line-height:1.7}
.doc>div{flex-wrap:wrap;gap:6px 20px}
.callout h2,.member-login h2,dialog h2,form h2,.safeguarding h2{font-size:clamp(1.625rem,1.3rem + .8vw,1.875rem);line-height:1.6}
.safeguarding p,.safeguarding .text-link{font-size:1rem;line-height:1.9}
.video-card h3{font-size:1.125rem;line-height:1.8;margin-bottom:10px}
.video-card>a{font-size:.9375rem;line-height:1.7;min-height:44px;display:inline-flex;align-items:center}
.video-launch span{font-size:1.0625rem;line-height:1.7}
.video-launch small{font-size:.75rem;line-height:1.7}
.reader-section .reading-page p,.faith-list li{font-size:var(--type-reading);line-height:1.95}
.reader-section .reading-page{max-width:800px}
.reader-section .reading-page h2{font-family:var(--display-font);font-size:clamp(1.375rem,1.2rem + .6vw,1.625rem);line-height:1.7;letter-spacing:0}
.reader-section .reading-page h3{font-size:1.25rem;line-height:1.7;letter-spacing:0}
.reader-toc summary{font-size:1.0625rem;line-height:1.7}
.reader-toc a{font-size:.9375rem;line-height:1.8;padding:8px 0}
.reading-month h2{font-size:1.875rem;line-height:1.6}
.reading-month table,.reading-month .scripture-link{font-size:1rem;line-height:1.75}
.reading-month th,.reading-month td{font-size:1rem;line-height:1.75}
.month-nav a{font-size:.9375rem;line-height:1.7}
.section,.hero-inner{min-width:0}
.about>*,.resources-grid>*,.contact-grid>*,.visit>*,.giving-grid>*,.member-login>*{min-width:0}
.section{padding-top:72px;padding-bottom:72px}
.page-content{padding-top:44px}
.page-banner .section{padding-top:32px;padding-bottom:40px}
@media(min-width:1100px){:root{--type-body:1.0625rem;--type-reading:1.125rem}}
@media(max-width:1200px){header nav a{font-size:1rem}}
@media(max-width:1050px){.member-login{align-items:flex-start}.member-login button{white-space:normal}}
@media(min-width:761px) and (max-width:980px){.life-grid{grid-template-columns:1fr}.life-card{padding:28px 32px}.card-icon{margin-bottom:12px}.contact-grid{gap:32px}.about,.resources-grid,.visit,.giving-grid{gap:32px}}
@media(max-width:760px){
 .section{padding:44px 24px}
 .hero-inner{padding:44px 24px 28px}
 .hero h1{font-size:clamp(2rem,8.5vw,2.5rem)}
 .hero .eyebrow{font-size:.8125rem;letter-spacing:.06em}
 .hero-bottom{align-items:flex-start;gap:8px;margin-top:32px}
 .hero-bottom i{margin-left:10px}
 .hero-bottom>span{max-width:100%}
 .hero-bottom>span:first-child{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px}
 .brand{font-size:1.0625rem;letter-spacing:0}.brand small{font-size:.625rem;letter-spacing:0}
 .visit-strip{padding:26px 24px;gap:20px}
 .about-copy{padding-top:0}
 .vision .identity-stack{padding-top:0}
 .identity-panel{padding:28px 22px}
 .vision .identity-heading{font-size:1rem;gap:4px 12px}
 .vision-statement{font-size:1.625rem;line-height:1.75}
 .identity-panel .verse-note{font-size:.8125rem}
 .values-panel .values{gap:24px 16px}
 .values-panel .values p{font-size:.9375rem;line-height:1.95}
 .mission-panel .mission h3,.values-panel .values h3{font-size:1.25rem}
 .mission-panel .mission p{font-size:1rem}
 .life-card{padding:24px 20px}.life-card .card-icon{float:none;margin-bottom:16px}
 .life-card .fellowship-description{font-size:1rem;letter-spacing:0}
 .life-card p br{display:initial}
 .visit-panel{padding:26px 24px}
 .page-content{padding-top:30px}
 .page-banner .section{padding-top:24px;padding-bottom:30px}
 .page-banner h1{font-size:2rem;line-height:1.6}
 .breadcrumbs{font-size:.8125rem;margin-bottom:22px}
 .callout,form{padding:24px 20px}
 .member-login{padding:24px 20px}
 .doc{padding:24px 20px}.doc h3{font-size:1.1875rem}
 .reader-section{padding-left:22px;padding-right:22px}
 .reader-section .reading-page p,.faith-list li{font-size:1.0625rem;line-height:1.95}
 .reader-section .reading-page h2{font-size:1.375rem}
 .reader-section .reading-page h3{font-size:1.1875rem}
 .reading-month th,.reading-month td,.reading-month .scripture-link{font-size:.9375rem;line-height:1.7}
 .reading-month th,.reading-month td{padding:10px 7px}
 .reading-month th:first-child{width:17%}.reading-month th:nth-child(2){width:26%}.reading-month th:nth-child(3){width:31%}
 .reading-toolbar{gap:12px}.reading-toolbar .button{padding:12px 18px}
 footer{padding:36px 24px 16px}.footer-main{gap:24px}
 .footer-main h3{font-size:1.1875rem}.footer-main .footer-heading{font-size:.875rem}
 .footer-main .footer-motto{font-size:1.1875rem;margin-top:6px}
 .footer-bottom{margin-top:26px;gap:8px 20px}
}
@media(max-width:370px){
 .hero h1{letter-spacing:.02em}
 header{padding:0 14px}.brand{font-size:1rem}.brand small{font-size:.5625rem}
 .section{padding-left:20px;padding-right:20px}.hero-inner{padding-left:20px;padding-right:20px}
 .identity-panel{padding:24px 20px}.identity-heading [lang=en]{font-size:.6875rem}
 .values-panel .values{grid-template-columns:1fr}
 .values-panel .values p{display:block}.values-panel .values p span{display:block}
 .life-card{padding:24px 16px}.life-card .fellowship-description{font-size:.9375rem}
 .reader-section{padding-left:16px;padding-right:16px}
 .reading-month th,.reading-month td,.reading-month .scripture-link{font-size:.875rem}
 .reading-month th,.reading-month td{padding:9px 5px}
 footer{padding-left:20px;padding-right:20px}
}
@media print{
 body{font-size:12pt}.section{padding:0}.reader-section .reading-page p,.faith-list li{font-size:12pt;line-height:1.7}
}

/* Keep small labels readable on the site's pale backgrounds. */
.eyebrow{color:#536b5e}.label{color:#526a5b}
.footer-bottom{color:#586b5d}

.page-banner h1 .title-subtitle{display:block;font-family:inherit;font-size:.65em;line-height:1.7;letter-spacing:.02em;margin-top:6px}
@media(max-width:760px){.page-banner h1 .title-subtitle{font-size:.6875em}}

/* Match breadcrumb padding so links, separators and current-page text share a baseline. */
.breadcrumbs{align-items:baseline}
.breadcrumbs>span{padding:4px 0}

.sermon-list-heading{font-family:var(--display-font);font-size:clamp(1.375rem,1.15rem + .8vw,1.75rem);font-weight:400;line-height:1.5;margin:0 0 24px}

/* Card actions share one text style whether the whole card or a single link is clickable. */
.life-card .card-actions .card-link{font-size:.9375rem;font-weight:500;line-height:1.7;margin:0;padding:6px 0}

/* Sunday messages before church life; four desktop cards */
header nav a:nth-child(2){background:#f1e6d3;color:#705434}
header nav a:nth-child(3){background:#e5eddf;color:#294536}
@media(min-width:1100px){#life{max-width:1440px;padding-left:32px;padding-right:32px}#life .life-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}#life .life-card{padding:24px 16px}#life .life-card p{font-size:.875rem}#life .life-card h3{font-size:1.375rem}}
@media(min-width:761px) and (max-width:1099px){#life .life-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.reading-page .source-note{font-family:KaiTi,"Kaiti SC","STKaiti",serif;font-size:.9375rem;font-style:italic;line-height:1.8;color:#64736c}

@media(min-width:1100px){.member-doc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.member-doc-grid .doc{min-width:0;padding:24px 18px}.member-doc-grid h3{font-size:1.25rem;overflow-wrap:anywhere}}

.contact-email-panel{padding:30px;background:#f6f8f1;min-width:0}
.contact-email-panel h2{font-size:clamp(1.625rem,1.3rem + .8vw,1.875rem);line-height:1.6}
.contact-email-address{overflow-wrap:anywhere;user-select:text;font-weight:500}
.contact-email-address a{text-decoration:underline;text-underline-offset:4px}
.contact-email-actions{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}
.contact-email-actions button{border:0}
@media(max-width:760px){.contact-email-panel{padding:24px 20px}.contact-email-actions{flex-direction:column}}

/* Full footer navigation with comfortable link targets. */
.footer-link-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 20px}
.footer-site-links{min-width:0}
@media(min-width:761px){.footer-main{grid-template-columns:1.4fr .8fr 1.4fr}}
@media(max-width:760px){.footer-site-links{grid-column:1/-1}}

/* Visually group desktop footer navigation under one heading. */
@media(min-width:761px){
 .footer-main{grid-template-columns:1.25fr .75fr 1.5fr;align-items:start}
 .footer-site-links{padding:20px 24px;background:#eef3e9;border:1px solid #dce5d5;border-radius:10px}
 .footer-site-links .footer-heading{margin:0 0 10px;color:#183f39}
 .footer-link-grid{gap:0 16px}
 .footer-site-links a{color:#355346}
}

/* Section location links match the inner-page breadcrumbs. */
.section-breadcrumbs{margin-bottom:20px}
.resources .section-breadcrumbs,.resources .section-breadcrumbs [aria-current]{color:inherit}
.section-breadcrumbs a:focus-visible{outline:2px solid currentColor;outline-offset:4px}

/* Main-navigation descriptions share one responsive size on sections and pages. */
h1.nav-description,h2.nav-description{
 font-family:var(--display-font);
 font-size:var(--type-section);
 line-height:1.5;
 letter-spacing:.03em;
 font-weight:400;
}

/* Core values: keyboard-accessible disclosure with responsive defaults. */
.values-panel .core-values-disclosure{border:0;margin:0;padding:0}
.values-panel .core-values-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;list-style:none;padding:0;min-height:44px}
.core-values-summary::-webkit-details-marker{display:none}
.values-panel .core-values-summary .identity-heading{margin:0}
.core-values-summary .core-values-toggle{font-family:Arial,sans-serif;font-size:1.5rem;flex-shrink:0}
.core-values-disclosure[open] .core-values-toggle{font-size:0}
.core-values-disclosure[open] .core-values-toggle::after{content:'−';font-size:1.5rem}
.values-panel .core-values-disclosure .values{margin-top:24px}
.core-values-summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}

/* Keep nested emphasis from changing a title's face or weight. */
.uniform-display,.uniform-display :is(span,strong,b,em,i){font-family:var(--display-font)!important;font-weight:400!important;font-style:normal!important;font-synthesis:none}

/* Compact bilingual identity headings use the original upright text face. */
.vision .identity-heading,.vision .identity-heading span{font-family:"Noto Sans CJK SC","Microsoft YaHei","PingFang SC",Arial,sans-serif;font-weight:600;font-style:normal}

/* Both languages inherit the same dark title color, including inside summary. */
.vision .identity-heading{color:#335347}
.vision .identity-heading span{color:inherit}
