/*
 * I-STEP Network Core — public impact presentation.
 *
 * Owned by Core, not the theme. Loaded only where an impact surface renders.
 * Uses the I-STEP brand palette and inherits the theme's font stack.
 */

.istep-impact-block,
.istep-impact-header,
.istep-member-impact,
.istep-impact-page {
	--istep-navy: #1f3864;
	--istep-teal: #00b4d8;
	--istep-ink: #22303f;
	--istep-muted: #5a6985;
	--istep-line: #dbe3ef;
	--istep-soft: #f4f8fc;
}

/* Screen-reader-only: an abbreviated figure is never the only value available. */
.istep-sr {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* Figures ---------------------------------------------------------------- */

.istep-figures { display: grid; gap: 1.25rem 2rem; margin: 0 0 1.5rem; }
.istep-figures--lead { grid-template-columns: 1fr; }
@media (min-width: 40rem) { .istep-figures--lead { grid-template-columns: 1fr 1fr; } }
.istep-figures--grid { grid-template-columns: 1fr 1fr; }
@media (min-width: 52rem) { .istep-figures--grid { grid-template-columns: repeat(4, 1fr); } }
.istep-figures--row { grid-template-columns: 1fr 1fr; }
@media (min-width: 48rem) { .istep-figures--row { grid-template-columns: repeat(4, 1fr); } }

.istep-figure { display: flex; flex-direction: column; gap: .15rem; }
.istep-figure__value {
	font-size: clamp(1.7rem, 4.5vw, 2.5rem); font-weight: 800; line-height: 1.05;
	color: var(--istep-navy); font-variant-numeric: tabular-nums;
}
.istep-figure__label {
	font-size: .82rem; font-weight: 600; letter-spacing: .06em;
	text-transform: uppercase; color: var(--istep-muted); line-height: 1.35;
}

/* The two principal metrics are deliberately larger than everything else. */
.istep-figure--lead .istep-figure__value {
	font-size: clamp(2.6rem, 8vw, 4.4rem); color: var(--istep-navy);
}
.istep-figure--lead .istep-figure__label {
	font-size: .95rem; color: var(--istep-ink); letter-spacing: .04em;
}
.istep-figures--lead .istep-figure:nth-child(2) .istep-figure__value { color: #0787a4; }

/* Homepage block --------------------------------------------------------- */

.istep-impact-block {
	background: var(--istep-soft);
	border-top: 4px solid var(--istep-teal);
	padding: clamp(2rem, 6vw, 3.5rem) 1rem;
}
.istep-impact-block__inner { max-width: 68rem; margin: 0 auto; }
.istep-impact-block__head { margin-bottom: 1.75rem; }
.istep-impact-block__title {
	margin: 0 0 .3rem; color: var(--istep-navy);
	font-size: clamp(1.5rem, 3.6vw, 2.1rem); line-height: 1.2;
}
.istep-impact-block__period,
.istep-impact-page__period {
	margin: 0; font-size: .85rem; font-weight: 600; letter-spacing: .06em;
	text-transform: uppercase; color: var(--istep-muted);
}
.istep-impact-block__pending,
.istep-impact-header__pending,
.istep-impact-page__pending {
	margin: 0 0 1.5rem; padding: .9rem 1.1rem; border-radius: 5px;
	background: #fff; border: 1px solid var(--istep-line);
	color: var(--istep-muted); font-size: .95rem;
}
.istep-impact-block__cta { margin: .5rem 0 0; }

.istep-impact-link {
	display: inline-block; padding: .65rem 1.2rem; border-radius: 4px;
	background: var(--istep-navy); color: #fff; text-decoration: none;
	font-weight: 600; font-size: .96rem;
}
.istep-impact-link:hover, .istep-impact-link:focus { background: #172c4f; color: #fff; }
.istep-impact-link:focus-visible { outline: 3px solid var(--istep-teal); outline-offset: 2px; }

/* Directory header ------------------------------------------------------- */

.istep-impact-header {
	background: #fff; border: 1px solid var(--istep-line);
	border-left: 4px solid var(--istep-teal); border-radius: 6px;
	padding: clamp(1.2rem, 3vw, 1.9rem); margin: 0 0 2rem;
}
.istep-impact-header__title { margin: 0 0 1.1rem; font-size: 1.2rem; color: var(--istep-navy); }
.istep-impact-header__cta { margin: .4rem 0 0; }

/* Member card indicator -------------------------------------------------- */

.istep-impact-current {
	display: inline-block; padding: .2rem .55rem; border-radius: 3px;
	background: #e8f7f0; color: #12694a; font-size: .76rem; font-weight: 700;
}

/* Member profile --------------------------------------------------------- */

.istep-member-impact {
	background: #fff; border: 1px solid var(--istep-line); border-radius: 6px;
	padding: clamp(1.1rem, 3vw, 1.75rem); margin: 2rem 0;
}
.istep-member-impact__title {
	margin: 0 0 .4rem; font-size: 1.15rem; color: var(--istep-navy);
	padding-bottom: .5rem; border-bottom: 2px solid var(--istep-teal); display: inline-block;
}
.istep-member-impact__period {
	margin: .4rem 0 1.1rem; font-size: .82rem; color: var(--istep-muted);
	text-transform: uppercase; letter-spacing: .06em; font-weight: 600;
}
.istep-member-impact__empty { margin: .6rem 0; color: var(--istep-muted); }
.istep-member-impact__switch { margin: 1rem 0 0; font-size: .9rem; }

/* Public impact page ----------------------------------------------------- */

.istep-impact-page { max-width: 66rem; margin: 0 auto; }
.istep-impact-page__headline { margin-bottom: 2.5rem; }
.istep-impact-page__switch { display: flex; flex-wrap: wrap; gap: .5rem 1rem; font-size: .9rem; margin: 1rem 0 0; }
.istep-impact-page__switch-current { font-weight: 700; color: var(--istep-navy); }

.istep-impact-section { margin: 2.5rem 0; }
.istep-impact-section h3 {
	margin: 0 0 .8rem; font-size: 1.1rem; color: var(--istep-navy);
	padding-bottom: .45rem; border-bottom: 2px solid var(--istep-teal); display: inline-block;
}
.istep-impact-section__note { margin: .4rem 0 1rem; font-size: .9rem; color: var(--istep-muted); }
.istep-impact-section--capacity { background: var(--istep-soft); border-radius: 6px; padding: 1.25rem; }

/* Country list ----------------------------------------------------------- */

.istep-country-list { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
@media (min-width: 34rem) { .istep-country-list { grid-template-columns: 1fr 1fr; gap: .3rem 2rem; } }
@media (min-width: 56rem) { .istep-country-list { grid-template-columns: repeat(3, 1fr); } }
.istep-country-list li {
	display: flex; justify-content: space-between; gap: 1rem;
	padding: .35rem 0; border-bottom: 1px solid var(--istep-line); font-size: .92rem;
}
.istep-country-list__count { font-weight: 700; color: var(--istep-navy); font-variant-numeric: tabular-nums; }

/* Distribution bars ------------------------------------------------------ */

.istep-bars { list-style: none; margin: 0; padding: 0; }
.istep-bars__row {
	display: grid; grid-template-columns: minmax(7rem, 12rem) 1fr auto;
	gap: .8rem; align-items: center; padding: .3rem 0; font-size: .92rem;
}
.istep-bars__track { background: var(--istep-line); border-radius: 3px; height: .7rem; overflow: hidden; }
.istep-bars__fill { display: block; height: 100%; background: var(--istep-teal); border-radius: 3px; }
.istep-bars__count { font-weight: 700; color: var(--istep-navy); font-variant-numeric: tabular-nums; }

/* Activity feed ---------------------------------------------------------- */

.istep-activity-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
@media (min-width: 44rem) { .istep-activity-feed { grid-template-columns: 1fr 1fr; } }
.istep-activity-card {
	background: #fff; border: 1px solid var(--istep-line); border-radius: 6px; overflow: hidden;
	display: flex; flex-direction: column;
}
.istep-activity-card__media img { display: block; width: 100%; height: auto; }
.istep-activity-card__body { padding: 1rem 1.1rem; }
.istep-activity-card__title { margin: 0 0 .3rem; font-size: 1rem; color: var(--istep-navy); }
.istep-activity-card__meta { margin: 0 0 .25rem; font-size: .84rem; color: var(--istep-muted); }
.istep-activity-card__desc { margin: .5rem 0 0; font-size: .9rem; }

/* Milestones ------------------------------------------------------------- */

.istep-milestones { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
@media (min-width: 40rem) { .istep-milestones { grid-template-columns: 1fr 1fr; } }
.istep-milestones__item {
	background: #fff; border: 1px solid var(--istep-line); border-left: 4px solid var(--istep-teal);
	border-radius: 5px; padding: .8rem 1rem; display: flex; flex-wrap: wrap; gap: .2rem .7rem; align-items: baseline;
}
.istep-milestones__value { font-size: 1.35rem; font-weight: 800; color: var(--istep-navy); font-variant-numeric: tabular-nums; }
.istep-milestones__label { font-weight: 600; color: var(--istep-ink); }
.istep-milestones__when { margin-left: auto; font-size: .8rem; color: var(--istep-muted); }

/* Optional reach section in the join form -------------------------------- */

.istep-optional-reach {
	margin: 1.25rem 0; padding: .8rem 1rem; border: 1px solid var(--istep-line);
	border-radius: 5px; background: var(--istep-soft);
}
.istep-optional-reach > summary { cursor: pointer; font-weight: 600; color: var(--istep-navy); }
.istep-optional-reach__note { margin: .6rem 0; font-size: .88rem; color: var(--istep-muted); }
.istep-optional-reach input[type="text"] { width: 100%; max-width: 16rem; padding: .5rem .6rem; }

@media (prefers-contrast: more) {
	.istep-impact-header, .istep-member-impact, .istep-activity-card { border-width: 2px; }
}

/* Impact map -------------------------------------------------------------- */

.istep-impact-map__canvas {
	height: 420px; margin: 1rem 0; border-radius: 6px;
	border: 1px solid var(--istep-line); background: var(--istep-soft);
}
@media (max-width: 40rem) { .istep-impact-map__canvas { height: 300px; } }
.istep-impact-map__listhead {
	margin: 1.5rem 0 .6rem; font-size: .95rem; color: var(--istep-navy);
	text-transform: uppercase; letter-spacing: .08em;
}
.istep-impact-map__table th[scope="row"] { font-weight: 600; white-space: normal; }


/* I-STEP 2.1.2 integrated directory metrics ------------------------------- */
.istep-impact-header__intro {
max-width: 76ch;
margin: -.35rem 0 1.5rem;
line-height: 1.65;
}

.istep-figures--directory {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 1rem;
}

@media (min-width: 48rem) {
.istep-figures--directory {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}
