/* Final layout rules apply to the complete page, not just the viewport hero. */
html,
body {
	min-inline-size: 0;
}
#main :is(section, article, aside, form, fieldset, figure) {
	min-inline-size: 0;
}
#main
	:is(
		.section-head,
		.partners-heading,
		.executive-heading,
		.project-directory-header,
		.portfolio-heading,
		.care-heading
	) {
	max-inline-size: 100%;
}
:is(
		.donation-layout,
		.donation-method-options,
		.donation-process,
		.story-focus-body,
		.story-focus-caption,
		.care-mini-stats,
		.recovery-grid,
		.program-feature-copy,
		.program-tabs,
		.purpose-workspace,
		.portfolio-reader-body,
		.portfolio-source-strip,
		.news-story-link,
		.news-carousel-controls,
		.official-stat-grid,
		.official-profile,
		.contact-field-row,
		.projects-hero-stats,
		.project-detail-facts,
		.project-region-snapshot
	)
	> * {
	min-width: 0;
}
:is(
	.button,
	.contact-copy-button,
	.project-detail-share,
	.project-active-filters button,
	.portfolio-data-link,
	.program-evidence-link,
	.partners-evidence-link
) {
	max-width: 100%;
	white-space: normal;
	overflow-wrap: anywhere;
	line-height: 1.6;
}
:is(
	.featured-row,
	.all-project-card-footer,
	.portfolio-source-actions,
	.footer-giving-strip,
	.footer-colophon,
	.footer-signoff,
	.care-section-heading,
	.projects-result-toolbar,
	.project-detail-location-head,
	.project-region-intro
) {
	min-width: 0;
	flex-wrap: wrap;
}
.featured-row > span:not(:last-child) {
	min-width: 0;
	flex: 1;
}
.featured-row > img {
	flex-shrink: 0;
}
.featured-row strong,
.featured-row small {
	overflow-wrap: anywhere;
}
:is(
	.project-active-filters button,
	.project-detail-location-head > span,
	.all-project-open,
	.program-evidence-link span,
	.hmbd-news .news-status
) {
	white-space: normal;
}
.project-region-intro > div {
	min-width: 0;
}
.project-region-intro > a {
	max-width: 100%;
}
.content-page .report-card {
	flex-wrap: wrap;
}
.content-page .report-card > div {
	min-width: 0;
	flex: 1 1 280px;
}
.content-page .report-card > .button {
	max-width: 100%;
	white-space: normal;
}
.report-table-scroll {
	width: 100%;
	min-width: 0;
}
.report-table-scroll table {
	max-width: none;
}
:is(
	.portfolio-reader-toolbar,
	.portfolio-reader-page-controls,
	.portfolio-reader-header,
	.portfolio-document-tabs
) {
	min-width: 0;
	flex-wrap: wrap;
}
.portfolio-reader-page-controls label {
	min-width: 0;
}
.portfolio-reader-viewport {
	min-width: 0;
	max-width: 100%;
	overflow: auto;
	overscroll-behavior: contain;
}
.portfolio-page-image {
	max-width: none;
}
.portfolio-reader-toolbar button {
	flex-shrink: 0;
}
.portfolio-reader-toolbar :is(input, select) {
	min-height: 44px;
}
.portfolio-reader-caption {
	min-width: 0;
	overflow-wrap: anywhere;
}
.donation-dialog :is(select, textarea) {
	max-width: 100%;
	min-width: 0;
}
.donation-review-actions .button {
	white-space: normal;
	text-align: center;
	justify-content: center;
}
.donation-detail-row {
	min-width: 0;
}
.donation-dialog .donation-guidance,
.donation-dialog address {
	overflow-wrap: anywhere;
}
.home-page .division-project-form {
	min-width: 0;
	max-width: 100%;
}
.home-page .division-project-form select {
	min-width: 0;
}
.home-page .atlas-spatial-meta {
	flex-wrap: wrap;
}
.home-page .atlas-spatial-meta details {
	max-width: 100%;
}
.home-page .atlas-spatial-meta details p {
	max-width: min(360px, calc(100vw - 48px));
	overflow-wrap: anywhere;
}
.home-page .atlas-console :is(.atlas-settings-status, .atlas-actions, .atlas-heading-meta) {
	flex-wrap: wrap;
}
.home-page .atlas-console .atlas-settings select {
	width: 100%;
	min-width: 0;
	max-width: 100%;
}
.nav-signature .menu-toggle {
	flex-shrink: 0;
}
.nav-signature .brand-caption {
	min-width: 0;
}
:is(.premium-footer, .pwa-access) {
	overflow-wrap: anywhere;
}
.footer-directory a,
.footer-contact a {
	max-width: 100%;
	overflow-wrap: anywhere;
}
@media (min-width: 1800px) {
	:root {
		--gutter: 5%;
	}
	#main > .section,
	#main > .home-project-previews > .section,
	#main > .hero,
	#main > .atlas,
	#main > .page-header,
	#main > .projects-hero,
	.premium-footer,
	.premium-footer.footer-refined,
	.pwa-access {
		padding-inline: max(5%, calc((100% - 1536px) / 2));
	}
	.home-page .care-evidence {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
	.home-page .care-evidence > div:last-child {
		max-width: 900px;
	}
}
@media (max-width: 1050px) {
	.portfolio-reader-toolbar {
		gap: 12px;
	}
	.portfolio-reader-page-controls {
		gap: 8px;
	}
	.executive-heading {
		grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
		gap: 28px;
	}
	.executive-introduction {
		min-width: 0;
	}
	.home-page .atlas-console .atlas-layout {
		grid-template-columns: minmax(0, 1fr);
	}
	.home-page .atlas-console .inspector {
		max-height: none;
		display: block;
	}
	.home-page .atlas-console .metric-grid {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}
@media (max-width: 820px) {
	.home-page .purpose-workspace,
	.home-page .story-focus-body,
	.home-page .care-evidence,
	.home-page .portfolio-showcase,
	.content-page .official-profile {
		grid-template-columns: minmax(0, 1fr);
	}
	.home-page .program-explorer {
		grid-template-columns: minmax(0, 1fr);
	}
	.executive-heading {
		grid-template-columns: minmax(0, 1fr);
		gap: 22px;
	}
	.home-page .care-portrait {
		min-height: 400px;
	}
	.home-page .program-feature-copy {
		grid-template-columns: minmax(0, 1fr);
	}
	.contact-field-row {
		grid-template-columns: minmax(0, 1fr);
	}
	.portfolio-reader-toolbar {
		align-items: flex-start;
	}
	.portfolio-reader-page-controls {
		width: 100%;
	}
	.portfolio-reader-toolbar .portfolio-zoom-label {
		margin-left: 0;
	}
}
@media (max-width: 640px) {
	#main > .section,
	#main > .home-project-previews > .section,
	#main > .atlas,
	#main > .page-header,
	#main > .projects-hero {
		padding-inline: max(20px, env(safe-area-inset-left), env(safe-area-inset-right));
	}
	.home-page .hero.hero-slider {
		padding-inline: max(20px, env(safe-area-inset-left), env(safe-area-inset-right));
	}
	.nav-signature .brand-premium {
		min-width: 0;
		flex-shrink: 1;
	}
	.nav-signature .brand-caption {
		gap: 3px;
		white-space: normal;
	}
	.nav-signature .brand-wordmark {
		font-size: 19px;
		gap: 1px;
	}
	.nav-signature .brand-wordmark span {
		font-size: 21px;
		white-space: normal;
	}
	.nav-signature .brand-caption small {
		font-size: 7.5px;
		line-height: 1.2;
		letter-spacing: 0.025em;
	}
	.home-page .program-tabs {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.home-page .program-tabs button {
		min-width: 0;
		white-space: normal;
		height: auto;
		min-height: 64px;
	}
	.home-page .story-focus-caption {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
	.home-page .care-mini-stats {
		grid-template-columns: repeat(auto-fit, minmax(min(125px, 100%), 1fr));
	}
	.home-page .care-mini-stats > div {
		min-width: 0;
	}
	.home-page .portfolio-chapter-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.portfolio-reader-toolbar {
		gap: 10px;
	}
	.portfolio-reader-page-controls button {
		min-width: 44px;
		width: 44px;
		min-height: 44px;
		height: 44px;
	}
	.portfolio-reader-page-controls {
		flex: 1 1 100%;
		justify-content: space-between;
	}
	.portfolio-reader-page-controls label {
		flex: 1;
		justify-content: center;
	}
	.portfolio-reader-page-controls input {
		width: 52px;
		max-width: 70px;
	}
	.portfolio-zoom-label {
		flex: 1 1 100%;
		justify-content: space-between;
	}
	.portfolio-zoom-label select {
		width: auto;
		min-width: 110px;
		min-height: 44px;
	}
	.portfolio-mobile-chapters {
		flex-wrap: wrap;
	}
	.portfolio-mobile-chapters select {
		min-height: 44px;
	}
	.project-region-snapshot {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 15px;
	}
	.project-region-snapshot > a,
	.project-region-snapshot > p {
		grid-column: 1/-1;
	}
	.projects-sort-controls {
		flex-wrap: wrap;
		width: 100%;
		gap: 10px;
	}
	.projects-sort-controls label {
		flex: 1;
		justify-content: space-between;
	}
	.projects-sort-controls select {
		max-width: 100%;
	}
	.project-detail-facts {
		grid-template-columns: minmax(0, 1fr);
	}
	.project-detail-facts > div {
		border-right: 0;
		border-bottom: 1px solid #d3e3fc;
		padding: 10px 0;
	}
	.donation-dialog {
		width: calc(100% - 24px);
		padding: 22px 16px;
		max-height: calc(100dvh - 24px);
	}
	.donation-gift-summary {
		padding: 18px;
	}
	.donation-dialog .donation-detail-row {
		grid-template-columns: minmax(0, 1fr) 52px;
	}
	.donation-detail-row > span {
		grid-column: 1/-1;
	}
	.home-page .atlas-console .metric-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.home-page .atlas-console .atlas-settings-status {
		align-items: flex-start;
		gap: 10px;
	}
	.home-page .atlas-projects-instruction {
		gap: 16px;
	}
	.home-page .division-project-form {
		width: 100%;
	}
	.home-page .atlas-spatial-meta details p {
		left: auto;
		right: 0;
		max-width: calc(100vw - 64px);
	}
	.home-page .atlas-console .map-view-switch > button > span {
		display: none;
	}
	.home-page .atlas-console .map-view-switch > button {
		min-width: 44px;
		padding-inline: 9px;
	}
	.home-page .faq-item summary {
		grid-template-columns: 20px minmax(0, 1fr) 26px;
		gap: 9px;
	}
	.contact-topics {
		gap: 8px;
	}
	.contact-topics label {
		min-width: 0;
	}
	.footer-directory {
		column-gap: 20px;
	}
	.footer-giving-strip > div {
		min-width: 0;
	}
	.pwa-access-actions button {
		white-space: normal;
		text-align: center;
	}
}
@media (max-width: 380px) {
	#main > .section,
	#main > .home-project-previews > .section,
	#main > .hero,
	#main > .atlas,
	#main > .page-header,
	#main > .projects-hero {
		padding-inline: max(16px, env(safe-area-inset-left), env(safe-area-inset-right));
	}
	.nav-signature .brand-logo {
		width: 58px;
		height: 46px;
	}
	.nav-signature .brand-logo img {
		width: 52px;
	}
	.nav-signature .brand-premium {
		gap: 8px;
	}
	.nav-signature .brand-wordmark {
		font-size: 18px;
	}
	.nav-signature .brand-wordmark span {
		font-size: 20px;
	}
	.nav-signature .brand-caption small {
		font-size: 7px;
	}
	.nav-signature .nav-shell {
		gap: 7px;
	}
	.nav-signature nav .nav-actions {
		grid-template-columns: minmax(0, 1fr);
	}
	.home-page .hero-slider .hero-footprint {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}
	.hero-slider .hero-footprint > div {
		border-left: 0;
		padding-left: 0;
		border-top: 1px solid #d3e3fc30;
		padding-top: 8px;
	}
	.hero-slider .hero-carousel-controls {
		flex-wrap: wrap;
	}
	.home-page .partner-nodes {
		grid-template-columns: minmax(0, 1fr);
	}
	.home-page .portfolio-chapter-grid {
		grid-template-columns: minmax(0, 1fr);
	}
	.home-page .portfolio-chapter {
		min-height: 100px;
	}
	.content-page .project-division-picker {
		grid-template-columns: minmax(0, 1fr);
	}
	.content-page .projects-filter-main {
		grid-template-columns: minmax(0, 1fr);
	}
	.projects-hero-stats {
		gap: 16px;
	}
	.home-page .atlas-console .map-controls {
		grid-template-columns: repeat(3, 44px);
		right: 10px;
		bottom: 58px;
	}
	.home-page .atlas-console .map-control-label {
		display: none;
	}
	.home-page .atlas-console .map-hint {
		max-width: 120px;
		font-size: 9px;
	}
	.home-page .atlas-console .map-hint b {
		font-size: 8px;
	}
	.home-page .atlas-console .map-view-switch {
		right: 10px;
		top: 12px;
	}
	.home-page .atlas-console .overlay-key {
		width: 100px;
		left: 10px;
	}
	.home-page .atlas-console .map-legend {
		font-size: 8px;
		left: 10px;
		bottom: 18px;
	}
	.home-page .atlas-console .map-tooltip {
		left: 10px;
		max-width: calc(100% - 20px);
	}
	.footer-directory {
		grid-template-columns: minmax(0, 1fr) !important;
	}
	.footer-identity,
	.footer-contact {
		grid-column: auto;
	}
	.footer-directory .footer-link-group {
		grid-column: auto;
	}
	.pwa-access-identity {
		align-items: flex-start;
	}
	.pwa-access-actions {
		align-items: stretch;
	}
	.pwa-access-actions button {
		flex: 1 1 100%;
	}
	.pwa-install-dialog h2 {
		font-size: 28px;
	}
}
@media (max-height: 500px) and (orientation: landscape) {
	:is(dialog, .portfolio-reader) {
		max-height: calc(100dvh - 16px);
		max-width: calc(100% - 16px);
	}
	.executive-dialog-content {
		grid-template-columns: minmax(0, 1fr);
	}
	.executive-dialog-portrait {
		display: none;
	}
	.donation-dialog {
		padding: 18px;
	}
	.donation-dialog-top {
		margin-bottom: 16px;
	}
}
@media print {
	#main > .section,
	#main > .home-project-previews > .section,
	#main > .page-header {
		padding-inline: 16px;
	}
	.donation-layout {
		display: block;
	}
}

.home-page :is(.news-carousel-controls, .news-controls-right, .news-pagination) {
	min-width: 0;
	flex-wrap: wrap;
}
@media (max-width: 380px) {
	.home-page .news-controls-right {
		width: 100%;
		justify-content: space-between;
	}
	.home-page .program-evidence-link {
		align-items: flex-start;
		flex-wrap: wrap;
	}
	.home-page .portfolio-document-tabs > a {
		white-space: normal;
	}
	.project-region-intro > a {
		padding-left: 0;
	}
}

/* Keep the floating navigation control above the support launcher. */
#back-to-top {
	bottom: calc(max(22px, env(safe-area-inset-bottom)) + 76px);
	right: max(20px, env(safe-area-inset-right));
}
body:has(.support-open) #back-to-top {
	visibility: hidden;
	pointer-events: none;
}

/* Homepage audit: preserve the established design while keeping content usable. */
@media (min-width: 1800px) {
	.home-page #donate .donation-layout {
		max-width: none;
	}
}
@media (max-width: 900px) {
	.home-page #inspector .inspector-body {
		min-height: 0;
		max-height: min(36rem, 70vh);
		max-height: min(36rem, 70svh);
		overflow-y: auto;
		scrollbar-gutter: stable;
		scrollbar-width: thin;
		scrollbar-color: #8baede #edf3ff;
	}
	.home-page #inspector .inspector-body:focus-visible {
		outline: 2px solid #0756ef;
		outline-offset: -2px;
	}
}
@media (max-width: 640px) {
	#back-to-top {
		bottom: calc(max(16px, env(safe-area-inset-bottom)) + 64px);
		right: calc(max(14px, env(safe-area-inset-right)) + 1px);
	}
	/* Keep both WhatsApp actions without a label covering the page copy. */
	.home-page #whatsapp-support {
		justify-content: center;
		width: 52px;
		min-height: 52px;
		padding: 12px;
	}
	.home-page #whatsapp-support > span {
		display: none;
	}
	.home-page #support-toggle {
		width: 44px;
		min-height: 52px;
	}
}
@media print {
	.home-page #inspector .inspector-body {
		max-height: none;
		overflow: visible;
	}
}

/* End the mobile page shortly after the final footer link. */
@media (max-width: 680px) {
	.premium-footer.footer-refined {
		padding-bottom: max(16px, env(safe-area-inset-bottom));
	}
	.footer-refined .footer-colophon {
		padding-bottom: 8px;
	}
}
