/* LightUp Lanka: research-informed type scale and black/white footer. */
:root{
 --font:'Source Sans 3',Arial,sans-serif;
 --display:'DM Sans','Source Sans 3',Arial,sans-serif;
 --heading:'DM Sans','Source Sans 3',Arial,sans-serif;
 --ll-serif:'DM Sans','Source Sans 3',Arial,sans-serif;
 --type-body:1.125rem;--type-ui:1rem;--type-small:.875rem;--type-label:.75rem;
 --type-h1:3.5rem;--type-h2:2.75rem;
 --type-h3:1.5rem;--type-h4:1.125rem;
 --footer-black:#0b0b0b;--footer-white:#fff;
}
html{font-size:100%;text-size-adjust:100%;scroll-padding-top:7rem}
body{font-family:var(--font);font-size:var(--type-body);line-height:1.65;font-optical-sizing:auto;letter-spacing:0}
button,input,select,textarea{font-family:var(--font);font-size:var(--type-ui);line-height:1.45}
strong,b{font-weight:700}
h1,h2,h3,h4,h5,h6,[role="heading"],.ll-display{
 font-family:var(--heading)!important;font-style:normal!important;font-weight:700!important;
 text-transform:uppercase!important;letter-spacing:-.025em!important;line-height:1.2!important;
 text-wrap:balance;overflow-wrap:break-word;
}
:is(h1,h2,h3,h4,h5,h6,[role="heading"],.ll-display) :is(span,em,strong,a,small){font-family:inherit!important;font-style:normal!important;text-transform:inherit}
h1{font-size:var(--type-h1)!important}
h2,.ll-display{font-size:var(--type-h2)!important}
h3{font-size:var(--type-h3)!important;line-height:1.35!important;letter-spacing:-.012em!important}
h4,h5,h6{font-size:var(--type-h4)!important;line-height:1.4!important;letter-spacing:0!important}
.lu-photo-hero .lu-hero-title{font-family:var(--heading)!important;font-size:5.5rem!important;font-weight:800!important;line-height:1.04!important;letter-spacing:-.035em!important;margin-bottom:1.75rem;overflow-wrap:break-word}
.lu-hero-title .lu-hero-italic{font-style:normal!important;letter-spacing:inherit;padding-right:0}
.lu-photo-hero .lu-hero-summary{font-size:1.25rem;line-height:1.65;font-weight:400;max-width:36rem}
.lu-photo-hero .lu-hero-kicker{font:600 .75rem/1.6 var(--font);letter-spacing:.09em}
.lu-hero-choice strong{font-family:var(--font);font-size:1rem;line-height:1.35;font-weight:600;letter-spacing:0}
.lu-hero-choice small{font-size:.75rem;line-height:1.4;letter-spacing:.03em}
.lu-hero-choices-label{font-size:.75rem;line-height:1.6;letter-spacing:.06em}
.lu-hero-stamp{width:8.5rem;height:8.5rem}
.lu-hero-stamp>span{font-family:var(--font);font-size:.625rem;line-height:1.6;letter-spacing:.075em}
.lu-hero-location{font-size:.875rem;line-height:1.5}
.pr-site main p:not(:is(.ll-eyebrow,.ng-eyebrow,.ll-category,.ng-card-kicker,.ng-card-meta,.ng-event-date,.lu-hero-kicker,.lu-hero-summary,.lu-hero-choices-label,.lu-hero-status,.ll-counter-number,.ll-lead)){font-size:var(--type-body);line-height:1.7;color:#33463c}
.pr-site main :is(.ll-category,.ng-card-kicker,.ng-card-meta){font-size:.75rem;line-height:1.6;letter-spacing:.06em}
.pr-site main :is(.ll-eyebrow,.ng-eyebrow),.ll-eyebrow,.ng-eyebrow,.team-eyebrow{font-family:var(--font);font-size:.75rem!important;line-height:1.6;letter-spacing:.08em;font-weight:600}
.ll-introduction-copy>.ll-lead,.ng-page-hero-grid>div>p:not(.ng-eyebrow),.ng-detail-heading>p:last-child,.ll-team-intro>.ll-lead,.ll-partner-intro>.ll-lead,.ll-publication-intro>.ll-lead{font-size:1.375rem!important;line-height:1.6;font-weight:400;letter-spacing:0}
.ll-introduction .ll-display,.ll-work-intro .ll-display,.ll-section-heading .ll-display,.ll-feature .ll-display,.ll-openness .ll-display,.ll-contact-band .ll-display{font-size:var(--type-h2)!important;line-height:1.18!important;letter-spacing:-.025em!important}
.ng-page-hero-grid h1,.pr-page-hero-compact .ng-page-hero-grid h1,.ng-detail-heading h1{font-size:var(--type-h1)!important;line-height:1.18!important;letter-spacing:-.025em!important}
.ll-programme-row h3,.ll-featured-story h3,.ll-story-stack h3,.ll-record-grid h3,.ll-activity-grid h3,.ll-publication-copy h2,.ll-resource-grid .ll-publication-copy h2,.cms-gallery figcaption h2{font-size:var(--type-h3)!important;line-height:1.35!important;letter-spacing:-.012em!important}
.ll-approach-grid h3,.ll-people-grid h3,.ll-partner-grid h3{font-size:1.375rem!important;line-height:1.4!important;letter-spacing:-.01em!important}
.ll-closing h2,.ll-team-invitation .ll-display,.ng-subscribe h2,.ll-event-archive-heading h2{font-size:2.25rem!important;line-height:1.25!important}
.ng-mega-intro h2,.ng-search-title h2{font-size:1.75rem!important;line-height:1.3!important}
.ng-faq-list summary{font-family:var(--heading)!important;font-size:1.125rem!important;font-weight:600;line-height:1.5!important;letter-spacing:0!important;text-transform:uppercase}
.ng-prose{max-width:66ch;font-size:var(--type-body);line-height:1.75}
.ng-prose p,.ng-prose li,.ng-prose blockquote{font-size:var(--type-body);line-height:1.75}
.ng-prose p+p{margin-top:1.25rem}
.ng-prose h2{font-size:2rem!important;margin-top:2.25rem;margin-bottom:1rem}
.ng-prose a{color:#8e4b00;text-decoration:underline;text-underline-offset:.18em}
.ng-navigation,.ng-mega-links,.ng-button,.ng-text-link,.ll-link,.lu-hero-primary,.lu-hero-secondary{font-family:var(--font)}
.ng-nav-group>button,.ng-nav-link,.ng-mega-links>a{font-size:1rem;line-height:1.5;font-weight:600;letter-spacing:0}
.ng-mega-links>a small,.ng-mega-intro>p{font-size:1rem;line-height:1.55}
.ng-button,.lu-hero-primary,.team-button{font-size:1rem;font-weight:600;line-height:1.35;min-height:3rem;padding:.875rem 1.25rem;letter-spacing:0}
.ng-text-link,.ll-link,.lu-hero-secondary,.ll-programme-action{font-size:1rem;font-weight:600;line-height:1.5;letter-spacing:0}
.ng-button-red{color:#243d35}
.ng-utility,.ng-utility a{font-size:.75rem;line-height:1.5;letter-spacing:.025em}
.ng-breadcrumb{font-size:.875rem;line-height:1.6}
.ng-brand>span,.team-brand>span{font-family:var(--heading);font-weight:800;font-size:1.5rem;letter-spacing:-.035em;line-height:1.2}
.ng-brand .ll-brand-name,.team-brand .ll-brand-name{display:block;font-family:var(--heading);font-size:inherit;font-weight:800;line-height:inherit;letter-spacing:inherit;color:inherit}
.ng-brand small,.team-brand small{font-family:var(--font);font-size:.625rem;font-weight:600;letter-spacing:.045em;line-height:1.5;margin-top:.375rem}
.ll-counter-number,.ll-work-count>strong,.ll-record-year,.ll-event-day,.ll-person-initial,.ll-document-cover>span,.team-stat>strong,.ng-identity strong{font-family:var(--heading);font-weight:800;letter-spacing:-.03em;line-height:1.1;font-variant-numeric:tabular-nums}
.ll-counter-number{font-size:4.5rem;color:#b85c00;margin-bottom:.75rem}
.ll-inline-counters .ll-counter-item h3{font-size:1rem!important;line-height:1.5!important;letter-spacing:.025em!important}
.ll-work-count>strong{font-size:4rem;color:#b85c00}
.ll-work-count>span{font-size:1rem;line-height:1.5}
.ll-index,.ll-step{font-family:var(--heading);font-size:1.25rem;font-weight:600;letter-spacing:-.01em}
.ngo-form-grid label,.ngo-enquiry-form label,.ng-newsletter label,.team-field label{font-size:1rem;font-weight:600;line-height:1.5}
.ngo-enquiry-form input,.ngo-enquiry-form select,.ngo-enquiry-form textarea,.ng-newsletter input,.team-field input,.team-field textarea,.team-field select,.team-search>input{font-size:1rem;line-height:1.5;min-height:3rem}
.ngo-enquiry-form small,.ngo-form-help,.ng-newsletter small,.team-field>p,.team-section-help{font-size:.875rem;line-height:1.6}
.ng-newsletter>small,.ng-subscribe .ng-feedback{font-size:.875rem;line-height:1.6}
.team-login{font-size:1rem;line-height:1.6}
.team-login h1,.team-page-top h1{font-size:2.5rem!important;line-height:1.22!important;letter-spacing:-.025em!important}
.team-login>p:not(.team-eyebrow),.team-page-top>div>p:last-child,.team-full-message p{font-size:1rem;line-height:1.65}
.team-login .team-login-note{font-size:.875rem!important;line-height:1.6!important}
.team-card-head h2,.team-empty h2,.team-publish-guide h2,.team-modal h2{font-size:1.5rem!important;line-height:1.3!important}
.team-sidebar nav>a,.team-sidebar-bottom .blade-signout{font-size:1rem;line-height:1.45;min-height:2.75rem}
.team-sidebar-label,.team-table th,.team-pill{font-size:.75rem;line-height:1.5}
.team-table td,.team-table td strong,.team-row-actions>a,.team-row-actions>button{font-size:.875rem;line-height:1.6}
.team-table small,.team-results-line,.team-table-note,.blade-pager,.team-stat>small{font-size:.875rem;line-height:1.6}
.team-stat>span,.team-start-actions strong,.team-readiness strong,.team-publish-guide li strong{font-size:1rem;line-height:1.5}
.team-start-actions small,.team-readiness small,.team-publish-guide li p{font-size:.875rem;line-height:1.6}
.team-stat>strong{font-size:3rem}
.team-enquiry-detail dt{font-size:.875rem;font-weight:600}
.team-enquiry-detail dd{font-size:1rem;line-height:1.65}
.ng-footer.ll-footer{background:var(--footer-black);color:var(--footer-white);padding-top:3.5rem;border-top:1px solid #232323}
.ng-footer.ll-footer :is(p,a,span,small,strong,h3,svg){color:#fff!important}
.ng-footer.ll-footer .ng-footer-top{gap:2.5rem;padding-bottom:2.75rem}
.ng-footer.ll-footer .ng-footer-top h3{font-family:var(--heading)!important;font-size:1rem!important;line-height:1.5!important;font-weight:700!important;letter-spacing:.055em!important;margin-bottom:1.125rem}
.ng-footer.ll-footer .ng-footer-about>p,.ng-footer.ll-footer .ng-footer-top>div:not(:first-child)>a,.ng-footer.ll-footer .ng-public-contact.is-compact>a{font-size:1rem;line-height:1.65}
.ng-footer.ll-footer .ng-footer-top>div:not(:first-child)>a{margin-bottom:.625rem}
.ng-footer.ll-footer .ng-brand{display:inline-flex;max-width:100%;background:transparent;padding:0;border-radius:0;box-shadow:none}
.ng-footer.ll-footer .ng-brand>span{font-family:var(--heading);font-size:1.5rem;letter-spacing:-.035em;font-weight:800}
.ng-footer.ll-footer .ng-brand small{font-size:.75rem;letter-spacing:.045em;line-height:1.5}
.ng-footer.ll-footer .ng-brand>.lul-logo-emblem{width:3rem;height:4rem;background:#fff;padding:.3rem;border-radius:.25rem;box-sizing:border-box}
.ng-footer.ll-footer .ng-public-socials>a{border-color:#ffffff66}
.ng-footer.ll-footer .ng-footer-bottom{border-top:1px solid #ffffff33;padding-block:1.5rem;gap:1.25rem;font-size:.875rem;line-height:1.65}
.ng-footer.ll-footer .ng-footer-bottom p,.ng-footer.ll-footer .ng-footer-bottom a{font-size:.875rem;line-height:1.65}
.ng-footer.ll-footer a:not(.ng-brand):hover,.ng-footer.ll-footer a:not(.ng-brand):hover :is(span,svg){color:#fe9403!important;text-decoration:underline;text-underline-offset:.2em}
.ng-footer.ll-footer a:focus-visible{outline:3px solid #fe9403;outline-offset:5px;border-radius:2px}
.team-workspace-footer{background:#0b0b0b;color:#fff;border:0;border-radius:.375rem;padding:1.125rem 1.375rem;font-size:.875rem;line-height:1.6}
.team-workspace-footer :is(a,span,strong){color:#fff}
@media(max-width:1100px){.ng-navigation{gap:1.125rem}.ng-header-row{gap:1.25rem}.ng-brand>span{font-size:1.3125rem}}
@media(max-width:960px){.lu-photo-hero .lu-hero-title{font-size:4rem!important}.lu-photo-hero .lu-hero-summary{font-size:1.125rem}.lu-hero-choices-label{font-size:.75rem}.ng-footer.ll-footer .ng-footer-top{gap:2rem}}
@media(max-width:760px){
 :root{--type-h1:2.25rem;--type-h2:1.875rem;--type-h3:1.25rem}
 .ng-brand>span{font-size:1.125rem}.ng-header .ng-brand small{display:none}.ng-header .ng-brand>.lul-logo-emblem{width:2rem;height:2.875rem}
 .lu-hero-stamp{display:none}.lu-photo-hero .lu-hero-kicker{max-width:none;font-size:.75rem;letter-spacing:.07em}
 .lu-photo-hero .lu-hero-title{font-size:2.75rem!important;line-height:1.08!important;letter-spacing:-.03em!important}
 .lu-hero-choice strong{font-size:1rem}.lu-hero-choice small{font-size:.75rem}.lu-hero-choice{min-height:6rem}
 .lu-hero-location{font-size:.875rem;max-width:100%}.lu-hero-location>[data-hero-note]{line-height:1.5}
 .ll-introduction-copy>.ll-lead,.ng-page-hero-grid>div>p:not(.ng-eyebrow),.ng-detail-heading>p:last-child{font-size:1.25rem!important;line-height:1.6}
 .ll-counter-number{font-size:3.25rem}.ll-inline-counters .ll-counter-item h3{font-size:.875rem!important;letter-spacing:0!important}
 .ng-button,.lu-hero-primary,.team-button{font-size:1rem;min-height:3rem}
 .ng-footer.ll-footer{padding-top:2.75rem}.ng-footer.ll-footer .ng-footer-top{gap:2rem}
 .ng-footer.ll-footer .ng-footer-bottom{align-items:flex-start}.ng-footer.ll-footer .ng-footer-bottom>div{gap:.75rem 1.125rem;flex-wrap:wrap}
 .ng-footer.ll-footer .ng-brand>span{font-size:1.5rem}.ng-footer.ll-footer .ng-brand small{display:block;font-size:.75rem}
}
@media(max-width:370px){.lu-photo-hero .lu-hero-title{font-size:2.125rem!important}.ll-counter-number{font-size:2.75rem}.ll-inline-counters .ll-counter-item h3{font-size:.8125rem!important}.ng-brand>span{font-size:1.0625rem}.ng-header-row{gap:.75rem}}

/* Wrapping safeguards for larger user text and narrow screens. */
.ng-header-row,.ng-navigation{flex-wrap:wrap}
.ng-brand>span,.team-brand>span{min-width:0;white-space:normal}
.ll-brand-name{overflow-wrap:break-word}
.ng-button,.lu-hero-primary{max-width:100%;white-space:normal;text-align:center}
.ng-button>span,.lu-hero-primary>span{min-width:0}
.ng-newsletter>div{flex-wrap:wrap}.ng-newsletter input[type="email"]{flex:1 1 15rem;min-width:0}
.ng-footer.ll-footer a{overflow-wrap:anywhere}
.ll-feature .ll-inline-counters{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
@media(min-width:1800px){.lu-photo-hero .lu-hero-title{font-size:7rem!important}:root{--type-h1:4rem;--type-h2:3rem}.ll-counter-number{font-size:5rem}}
@media(min-width:961px) and (max-width:1200px){.lu-photo-hero .lu-hero-title{font-size:4.75rem!important}}

.ll-feature li,.ll-identity span{font-size:1rem;line-height:1.65}
@media(max-width:760px){.ng-prose h2{font-size:1.5rem!important}}

.lu-photo-hero .lu-hero-summary{color:#fff}
.ngo-enquiry-form input::placeholder,.ng-newsletter input::placeholder,.team-field input::placeholder{color:#64716a;opacity:1}
.ngo-enquiry-form :is(input,select,textarea):focus-visible,.ng-newsletter input:focus-visible,.team-field :is(input,select,textarea):focus-visible{outline:3px solid #b85c00;outline-offset:2px}

/* Keep form columns within their track when readers enlarge text. */
.ng-enquiry-layout>*,.ngo-form-grid>*,.ng-public-contact>a>span,.ng-enquiry-location>div{min-width:0}
.ng-enquiry-location strong,.ng-public-contact span{overflow-wrap:anywhere}
.ngo-field :is(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
.pr-enquiry-switcher a,.ngo-submit,.ng-filter-tabs>button,.ng-newsletter .ng-button,.ng-search-field>input{font-family:var(--font);font-size:1rem;line-height:1.5}
.ll-partner-grid>*,.ll-openness-grid>*,.ng-subscribe>.ng-container>*,.ll-newsletter>.ng-container>*,.ng-footer-top>*{min-width:0}
@media(max-width:760px){
 .ng-enquiry-layout,.ngo-form-grid{grid-template-columns:minmax(0,1fr)}
 .pr-enquiry-switcher>nav{grid-template-columns:repeat(auto-fit,minmax(min(100%,7rem),1fr))}
 .pr-enquiry-switcher a{min-width:0;overflow-wrap:anywhere}
 .ll-openness-grid,.ng-subscribe>.ng-container,.ll-newsletter>.ng-container{grid-template-columns:minmax(0,1fr)}
 .ll-partner-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
 .ng-footer.ll-footer .ng-footer-top{grid-template-columns:repeat(auto-fit,minmax(min(100%,10rem),1fr))}
}

.ng-header .ng-brand{min-width:0;max-width:100%;flex:0 1 auto}
.ng-header .ng-brand>span{font-size:1.5rem}
.ng-subscribe p:not(.ll-eyebrow,.ng-eyebrow){font-size:var(--type-body);line-height:1.7}
@media(max-width:1100px){.ng-header .ng-brand>span{font-size:1.3125rem}}
@media(max-width:760px){.ng-header .ng-brand>span{font-size:1.125rem}}
@media(max-width:370px){.ng-header .ng-brand>span{font-size:1.0625rem}}

@media(max-width:1000px){
 .ng-navigation.is-open{flex-wrap:nowrap;align-items:stretch}
 .ng-navigation.is-open>*,.ng-navigation .ng-nav-group,.ng-mega-panel,.ng-mega-links{min-width:0;max-width:100%}
 .ng-navigation .ng-nav-group>button{width:100%;white-space:normal;text-align:left;gap:.75rem}
 .ng-navigation .ng-mega-links a,.pr-mobile-menu-actions a{overflow-wrap:anywhere}
}
