/* Source sections: one quiet frame per topic, with a shared module rhythm. */
.source-module{padding:var(--module-vspace) var(--gutter);background:#f1f2f4}
.source-module-alt{background:#f1f2f4}
/* Keep every content section on the same vertical spacing scale, including
   Chinese sections whose older language-specific rules set different values. */
html[lang] .overview,html[lang] .documents,html[lang] .payments,html[lang] .source-module,html[lang] .review,html[lang] .faq{padding-block:var(--module-vspace)}
.source-module-inner{width:100%;max-width:var(--module-width);margin-inline:auto}
.source-heading{max-width:980px;margin-bottom:26px}
.source-heading .kicker{margin:0 0 13px;color:#315bd8}
.source-heading h2{margin:0;color:#18243a;font-size:clamp(31px,3vw,43px);line-height:1.25}
.source-heading p:not(.kicker){max-width:850px;margin:14px 0 0;color:#596880;font-size:16px;line-height:1.8}
.source-panel{padding:clamp(26px,3vw,40px) clamp(28px,4vw,48px);border:2px solid #b9caf3;border-radius:20px;background:linear-gradient(145deg,#f8faff 0%,#eef3fc 100%);box-shadow:0 18px 48px rgba(31,67,130,.07)}
.source-panel h3{margin:0 0 22px;color:#315bd8;font-size:clamp(20px,2vw,26px);line-height:1.4}
.source-step-list,.source-bullet-list{margin:0;padding:0;list-style:none}
.source-step{display:grid;grid-template-columns:42px 1fr;gap:20px;align-items:start;padding:18px 0;border-top:1px solid #cbd7ee}
.source-step:last-child{padding-bottom:0}
.source-step-number{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#e1e9fb;color:#315bd8;font-size:12px;font-weight:800}
.source-step p{margin:2px 0 0;color:#273650;font-size:16px;line-height:1.75}
.citizenship-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.citizenship-grid .source-panel{height:100%}
.source-bullet-list li{position:relative;padding:16px 0 16px 25px;border-top:1px solid #cbd7ee;color:#273650;font-size:16px;line-height:1.7}
.source-bullet-list li:before{content:"";position:absolute;left:0;top:27px;width:8px;height:8px;border-radius:50%;background:#315bd8}
.source-bullet-list li:last-child{padding-bottom:0}
.citizenship-notes{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px}
.citizenship-notes p{margin:0;padding:18px 22px;border-left:3px solid #315bd8;border-radius:0 10px 10px 0;background:#f8faff;color:#52617a;font-size:15px;line-height:1.7}
.testimonial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.testimonial-card{display:flex;flex-direction:column;min-width:0;padding:28px 26px;border:1px solid #d4def0;border-radius:18px;background:#f8faff;box-shadow:0 12px 32px rgba(31,67,130,.06)}
.testimonial-mark{height:42px;color:#315bd8;font-family:Georgia,serif;font-size:64px;line-height:1}
.testimonial-copy{flex:1;margin:13px 0 28px;color:#30415e;font-size:15px;line-height:1.8}
.testimonial-name{margin:0;padding-top:18px;border-top:1px solid #d4def0;color:#17243a;font-size:16px;font-weight:700}
.source-attribution{margin:18px 0 0;color:#74819a;font-size:12px;line-height:1.5}
@media(max-width:900px){.citizenship-grid,.testimonial-grid{grid-template-columns:1fr}.testimonial-grid{gap:14px}.testimonial-card{padding:24px}.citizenship-notes{grid-template-columns:1fr;gap:12px}}
@media(max-width:560px){.source-module{padding:var(--module-vspace) 20px}.source-heading{margin-bottom:20px}.source-heading h2{font-size:27px}.source-heading p:not(.kicker){font-size:14px}.source-panel{padding:26px 20px;border-radius:16px}.source-panel h3{font-size:20px}.source-step{grid-template-columns:32px 1fr;gap:12px;padding:16px 0}.source-step-number{width:28px;height:28px;font-size:10px}.source-step p,.source-bullet-list li{font-size:14px}.source-bullet-list li{padding-top:14px;padding-bottom:14px}.source-bullet-list li:before{top:24px}.citizenship-notes p,.testimonial-copy{font-size:14px}}

/* One heading system: chapter label and title sit above, not inside, each frame. */
html[lang] .section .kicker{display:flex;align-items:center;justify-content:flex-start;gap:12px;margin:0 0 13px;color:#315bd8;font-size:clamp(16px,1.45vw,20px);font-weight:750;letter-spacing:.025em;line-height:1.45}
html[lang] .section .kicker>span:first-child{color:#8798b6;font-size:.85em;font-weight:750;letter-spacing:.07em}
html[lang] .section .section-heading h2,html[lang] .source-heading h2{max-width:100%;margin:0;color:#18243a;font-size:clamp(34px,3.35vw,50px);font-weight:750;letter-spacing:-.035em;line-height:1.18;text-wrap:balance;overflow-wrap:break-word}
html[lang] .overview>.section-heading{width:100%;max-width:var(--module-width);margin:0 auto 27px}
html[lang] .overview>.split-heading{display:block;padding:0;border:0;text-align:left}
html[lang] .overview>.split-heading .section-description{display:block;max-width:900px;margin:14px 0 0;color:#596880;font-size:16px;line-height:1.75}
html[lang] .source-heading{max-width:var(--module-width);margin-bottom:27px}
html[lang] .review>.section-heading{width:100%;max-width:var(--module-width);margin:0 auto 27px}
html[lang] .faq-layout{display:block}
html[lang] .faq-layout>.section-heading{margin-bottom:27px}
html[lang] .faq-symbol{display:none}
@media(max-width:600px){html[lang] .section .kicker{font-size:16px;margin-bottom:10px}html[lang] .section .section-heading h2,html[lang] .source-heading h2{font-size:clamp(29px,7vw,34px);line-height:1.22}html[lang] .overview>.section-heading,html[lang] .review>.section-heading,html[lang] .faq-layout>.section-heading,html[lang] .source-heading{margin-bottom:20px}html[lang] .overview>.split-heading .section-description{font-size:14px;margin-top:12px}}
