/* v181 — one type scale for all ten languages and all three pages.
   Wrap longer translations rather than silently shrinking their font. */
:root{--type-body:clamp(16px,.32vw + 14px,20px);--type-small:clamp(14px,.2vw + 13px,16px);--type-title:clamp(30px,2.5vw + 16px,64px);--type-card:clamp(23px,1vw + 16px,34px)}
html body{font-size:var(--type-body);line-height:1.55}
html body :is(h1,h2,h3,h4,p,button,a,label,small){text-wrap:pretty}
html body :is(h1,h2,h3,h4){overflow-wrap:anywhere;hyphens:auto}
html body :is(.display,.profile-section-title,.contact-card .display){font-size:var(--type-title)!important;line-height:1.12!important;letter-spacing:-.035em!important}
html body :is(.hero h1,.profile-display){font-size:clamp(38px,4.8vw,88px)!important;line-height:1.08!important;letter-spacing:-.045em!important}
html body .hero-line{font-size:inherit!important;line-height:inherit!important;white-space:normal!important;max-width:100%!important;width:auto!important;overflow-wrap:anywhere}
html body :is(.program-copy h3,.field-card-copy h3,.internship-position-head h3,.profile-focus-card h3){font-size:var(--type-card)!important;line-height:1.2!important;overflow-wrap:anywhere}
html body :is(.hero-lead,.statement-copy p,.collab-intro>p:last-child,.fields-head>p:not(.eyebrow),.program-copy>p:not(.card-kicker),.field-card-copy p,.facility-copy p,.field-card p,.partner-panel-description,.contact-card>p:not(.eyebrow),.director-copy>p[data-i18n],.profile-lead,.profile-overview-copy p,.profile-legal-copy p,.profile-year-card p,.profile-focus-card p){font-size:var(--type-body)!important;line-height:1.6!important}
html body :is(.eyebrow,.card-kicker,.hero-eyebrow){font-size:var(--type-small)!important;line-height:1.4!important;letter-spacing:.06em!important}
html body :is(.button,.text-link,.application-cta,.profile-cta-actions a){font-size:clamp(16px,.3vw + 14px,20px)!important;line-height:1.35!important;white-space:normal;min-height:44px}
html body :is(.partner-row-copy strong,.all-partner-row .partner-row-copy strong){font-size:clamp(16px,.3vw + 14px,20px)!important;line-height:1.35!important}
html body :is(.partner-row-copy>span,.partner-card-meta,.partner-note,.taiwan-map-help,.map-filter,.site-footer,.site-footer p,.site-footer a){font-size:var(--type-small)!important;line-height:1.45!important}
/* Same brand typography in every language; let the name use two lines. */
html[data-language] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before,
html body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{font-size:clamp(16px,.45vw + 12px,22px)!important;line-height:1.2!important;white-space:normal!important;overflow:visible!important;text-overflow:clip!important;overflow-wrap:anywhere;word-break:normal!important}
html body .site-header .brand-copy{overflow:visible!important;min-width:0!important}
html body .site-header .brand-copy strong[data-i18n-html="brand.name"]{overflow:visible!important;white-space:normal!important}
html body .site-header .brand-copy small{font-size:12px!important;line-height:1.4!important;white-space:normal!important;overflow:visible!important}
html body .site-header .site-nav{font-size:clamp(15px,.25vw + 13px,19px)!important;gap:clamp(10px,1vw,20px)!important}
html body .site-header .site-nav>a{font-size:inherit!important;line-height:1.35!important;white-space:normal!important}
html body .site-header .language-select{font-size:15px!important}
/* Both circular badges share number AND caption sizes. No absolute-positioned text. */
html body .hero-collage>.hero-badge-group{display:flex!important;gap:12px!important;max-width:100%;align-items:center}
html body .hero-collage>.hero-badge-group .hero-badge{position:relative!important;inset:auto!important;width:clamp(132px,11vw,176px)!important;height:clamp(132px,11vw,176px)!important;min-width:0;flex:0 0 auto;box-sizing:border-box;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:14px!important;transform:none!important;animation:none!important;overflow:hidden}
html body .hero-collage>.hero-badge-group .hero-badge>span{position:static!important;inset:auto!important;width:auto!important;height:auto!important;display:block!important;transform:none!important;font-size:clamp(36px,3.2vw,54px)!important;line-height:1!important;letter-spacing:-.04em!important;margin:0!important;white-space:nowrap!important}
html body .hero-collage>.hero-badge-group .hero-badge>small{position:static!important;inset:auto!important;display:block!important;transform:none!important;width:100%!important;max-width:100%!important;height:auto!important;font-size:12px!important;line-height:1.25!important;letter-spacing:0!important;font-weight:800;margin:0!important;white-space:normal!important;overflow-wrap:anywhere;text-align:center}
html body .hero-collage>.hero-badge-group .hero-badge-internship{color:#151515!important}
/* All image contexts use the same nondestructive framing controls. */
.partner-thumb-wrap{overflow:hidden}
.partner-thumb-wrap img[data-cms-framed],.gallery-item img[data-cms-framed],.hero-photo img[data-cms-framed],.director-photo img[data-cms-framed]{object-position:var(--cms-img-x,50%) var(--cms-img-y,50%)!important;transform-origin:var(--cms-img-x,50%) var(--cms-img-y,50%);scale:var(--cms-img-zoom,1)}
.partner-image-note{display:block!important;font-size:12px!important;line-height:1.4!important;color:#675626;margin-top:5px}
html body .cms-admin-badge{position:fixed;left:16px!important;right:auto!important;bottom:calc(16px + env(safe-area-inset-bottom));font-size:17px!important;line-height:1.4;padding:12px 18px!important;border:2px solid #161616;border-radius:12px;cursor:pointer;z-index:10001}
.cms-admin-shell{font-size:16px!important;width:min(580px,calc(100vw - 24px))!important}
.cms-admin-shell :is(p,label,input,select,textarea,button),.cms-modal-card :is(p,label,input,select,textarea,button){font-size:16px!important;line-height:1.5!important}
.cms-admin-shell h2,.cms-modal-card h2{font-size:26px!important;line-height:1.2!important}
.cms-admin-shell h3,.cms-modal-card h3{font-size:20px!important;line-height:1.3!important}
.cms-button,.cms-tab{min-height:44px;white-space:normal}
.cms-modal-card{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain}
.cms-image-apply-row{position:sticky;bottom:0;background:#fffdf5;padding:14px 0 4px;z-index:2}
.cms-status{font-size:16px!important;line-height:1.5;overflow-wrap:anywhere}
#cms-toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translateX(-50%);width:max-content;max-width:calc(100vw - 32px);padding:16px 22px;border:2px solid #132f22;border-radius:14px;box-shadow:0 8px 28px #0003;z-index:999999;background:#e7f8ed;color:#153e29;font-size:17px;font-weight:700;line-height:1.5}
#cms-toast.is-error{background:#fff0ec;color:#8a2316;border-color:#8a2316}
#cms-toast[hidden]{display:none}
/* Registration labels, help, and controls also stay readable. */
html body .application-shell :is(input:not([type=checkbox]):not([type=radio]),select,textarea,button){font-size:16px!important;line-height:1.4!important}
html body .application-shell :is(label,legend){font-size:16px!important;line-height:1.5!important}
html body .application-shell :is(small,.hint,.field-hint,.help-text,.address-composer-intro,.address-composer-optional,.draft-status){font-size:14px!important;line-height:1.5!important}
html body .application-hero h1{font-size:clamp(30px,3.5vw,52px)!important;line-height:1.15!important}
@media(max-width:600px){html body .site-header .brand-copy small{display:none!important}html body .hero-collage>.hero-badge-group .hero-badge{width:132px!important;height:132px!important}html body .hero-collage>.hero-badge-group{gap:10px!important;left:0!important}html body .hero-actions{grid-template-columns:1fr}.cms-admin-shell{inset:12px 12px auto!important;max-height:calc(100dvh - 90px)!important}.cms-crop-preview{max-height:240px}}
/* Legacy brand strings contained nonbreaking spaces, clipping on 320px screens. */
html body .site-header .brand{overflow:visible!important}
html:not([data-language]) body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before,
html[data-language="id"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"Yayasan HanAnHua"!important}
html[data-language="en"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"HanAnHua Foundation"!important}
html[data-language="es"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"Fundación HanAnHua"!important}
html[data-language="fr"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"Fondation HanAnHua"!important}
html[data-language="de"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"HanAnHua Stiftung"!important}
html[data-language="ko"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"HanAnHua 재단"!important}
html[data-language="ar"] body .site-header .brand-copy strong[data-i18n-html="brand.name"]::before{content:"مؤسسة HanAnHua"!important}
img[data-cms-custom-frame="1"]{object-position:var(--cms-img-x,50%) var(--cms-img-y,50%)!important;transform-origin:var(--cms-img-x,50%) var(--cms-img-y,50%);scale:var(--cms-img-zoom,1)}

html body .program-photo-half>span{font-size:14px!important;line-height:1.3!important}
html[data-language] body main h2:not(.profile-display){font-size:var(--type-title)!important;line-height:1.15!important;letter-spacing:-.035em!important}
html[data-language] body main h3{font-size:var(--type-card)!important;line-height:1.25!important;letter-spacing:-.02em!important}
html[data-language] body .director-copy h2{font-size:clamp(30px,3.5vw,56px)!important;line-height:1.15!important}
html[data-language] body .director-copy h2 span{font-size:clamp(16px,.3vw + 14px,20px)!important;line-height:1.5!important}
.cms-search-result small{font-size:13px!important;line-height:1.45!important}
