/*
 * TRI native (Elementor-free) styles. Design tokens extracted from the live
 * Elementor build so native templates match the existing brand.
 */
:root {
	--tri-pink:   #b21f4c;
	--tri-gold:   #d3922a;
	--tri-teal:   #1d6480;
	--tri-green:  #2e4a2e;
	--tri-black:  #111111;
	--tri-text:   #334155;
	--tri-muted:  #64748b;
	--tri-line:   #e7e7e7;
	--tri-serif:  "Libre Baskerville", Georgia, "Times New Roman", serif;
	--tri-sans:   "Poppins", system-ui, sans-serif;
	--tri-nunito: "Nunito", system-ui, sans-serif;
	--tri-body:   -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	--tri-maxw:   1140px;
}

/* ---- layout primitives ---- */
.tri-main { color: var(--tri-text); font-family: var(--tri-body); font-size: 16px; line-height: 1.65; width: 100%; max-width: 100%; }
/* guarantee native pages are edge-to-edge regardless of Astra container width */
body.tri-native #content > .ast-container { max-width: 100%; padding-left: 0; padding-right: 0; }
body.tri-native #primary, body.tri-native #content .site-main { margin: 0; padding: 0; max-width: 100%; }
.tri-container { max-width: var(--tri-maxw); margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.tri-section { padding: 64px 0; }
.tri-section:nth-of-type(even) { background: #f7f8f9; }
.tri-figure { margin: 0; }
.tri-figure img { display: block; max-width: 100%; height: auto; margin: 0 auto; }

/* ---- headings ---- */
.tri-section__title {
	font-family: var(--tri-serif);
	font-size: 38px; line-height: 1.3; font-weight: 600;
	color: var(--tri-black); text-align: center; text-transform: uppercase;
	margin: 0 0 32px;
}

/* ---- hero ---- */
.tri-hero {
	background: var(--tri-green); background-size: cover; background-position: center;
	color: #fff; padding: 96px 0; text-align: left; position: relative;
}
.tri-hero::after { content: ""; position: absolute; inset: 0; background: rgba(20,30,20,.35); }
.tri-hero .tri-container { position: relative; z-index: 1; }
.tri-hero__title {
	font-family: var(--tri-sans); font-weight: 700; font-size: 88px; line-height: 1.05;
	color: var(--tri-pink); margin: 0 0 20px;
}
.tri-hero__title span { color: #fff; }
.tri-hero__content { max-width: 760px; color: #fff; font-size: 18px; }
.tri-hero--about { background: var(--tri-green); }

/* ---- key programmatic support grid ---- */
.tri-support-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.tri-support-grid__item { background: #fff; border: 1px solid var(--tri-line); border-radius: 8px; padding: 24px; font-weight: 500; }

/* ---- buttons ---- */
.tri-button {
	display: inline-block; background: #d59823; color: #fff; font-family: var(--tri-nunito);
	font-size: 16px; font-weight: 700; line-height: 1.2; text-decoration: none; padding: 14px 34px; border-radius: 3px;
	text-transform: uppercase; letter-spacing: normal; transition: background .2s ease; border: none;
}
.tri-button:hover { background: #b97c1f; color: #fff; }
/* hero CTA is larger on live: Nunito 22px / 700, padding 20x90 */
.tri-home-hero .tri-button { font-size: 22px; padding: 20px 90px; }
.tri-cta-row { text-align: center; margin-top: 28px; }

/* ---- contact ---- */
.tri-contact { background: var(--tri-gold); padding: 64px 0; color: #fff; }
.tri-contact .tri-section__title { color: #fff; text-align: left; }
.tri-contact__form { max-width: 720px; }

/* === guaranteed brand fonts (beat Astra/Elementor global heading rules; survive Elementor removal) === */
body.tri-native .home-hero-title,
body.tri-native .tri-section__title,
body.tri-native .tri-progress__value,
body.tri-native .tri-news__title,
body.tri-native .tri-hero__title { font-family: var(--tri-serif) !important; }
body.tri-native .tri-block__title { font-family: var(--tri-sans) !important; }
body.tri-native .tri-button,
body.tri-native .tri-button--ghost { font-family: var(--tri-nunito) !important; }

/* ============================================================= HOMEPAGE */
/* hero with looping video bg */
.tri-home-hero { position: relative; min-height: 600px; display: flex; align-items: center; background: var(--tri-green) center/cover no-repeat; overflow: hidden; }
.tri-home-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.tri-home-hero__overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.32) 45%, rgba(0,0,0,.08) 100%); z-index: 1; }
.tri-home-hero__inner { position: relative; z-index: 2; padding: 50px 20px; width: 100%; }
.tri-hero-line { display: block; width: 160px; height: 12px; background: var(--tri-pink); margin: 0 0 22px; }
.tri-home-hero .home-hero-title { font-family: var(--tri-serif); font-size: 80px; line-height: 80px; font-weight: 800; color: var(--tri-pink); margin: 0 0 26px; text-transform: uppercase; }
.tri-home-hero .home-hero-title { display: flex; flex-wrap: wrap; }
.tri-home-hero .home-hero-title span { color: #fff; flex: 0 0 100%; margin-right: 0; } /* force RESTORING onto its own line, like live */
.tri-home-hero__content { max-width: 660px; color: #fff; font-size: 16px; line-height: 1.65; margin-bottom: 28px; }
.tri-home-hero__content p { margin: 0; }

/* progress to date */
.tri-progress { padding: 64px 0; background: #ececed; }
.tri-progress__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; }
.tri-progress__value { display: block; font-family: var(--tri-serif); font-size: 70px; font-weight: 600; color: var(--tri-pink); line-height: 1.1; }
.tri-progress__label { display: block; margin-top: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .03em; color: #1e293b; font-size: 14px; }

/* 5-block grid (areas + colours ported from legacy style.css) */
.tri-blocks__grid { display: grid; grid-template-columns: 1fr 1.5fr; grid-template-areas: "block1 block2" "block4 block3" "block4 block5"; }
.tri-block { position: relative; color: #fff; min-height: 280px; display: flex; }
.tri-block__media { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .9; }
.tri-block__body { position: relative; z-index: 1; padding: 48px; align-self: center; }
.tri-block__title { font-family: var(--tri-sans); color: #fff; font-size: 40px; font-weight: 600; line-height: 52px; margin: 0 0 16px; }
.tri-block--2 .tri-block__title, .tri-block--5 .tri-block__title { font-size: 30px; line-height: 35px; }
.tri-block__text { font-family: var(--tri-body); color: #fff; font-size: 16px; line-height: 1.65; margin-bottom: 22px; max-width: 42ch; }
.tri-block--1 { grid-area: block1; background: #000; }
.tri-block--2 { grid-area: block2; background: var(--tri-teal); }
.tri-block--3 { grid-area: block3; background: var(--tri-pink); }
.tri-block--4 { grid-area: block4; background: var(--tri-gold); }
.tri-block--5 { grid-area: block5; background: #000; }
/* block 2 ("From Cameroon to China"): image panel LEFT, teal content RIGHT (matches live) */
.tri-block--2 { display: grid; grid-template-columns: 340px 1fr; align-items: stretch; }
.tri-block--2 .tri-block__media { position: static; inset: auto; height: auto; min-height: 100%; }
.tri-block--2 .tri-block__body { align-self: center; }
.tri-button--ghost { background: transparent; border: 2px solid #fff; font-weight: 500; padding: 12px 32px; }
.tri-button--ghost:hover { background: #fff; color: #111; }

/* journey video */
.tri-journey { padding: 64px 0; }
.tri-journey__video { position: relative; max-width: 960px; margin: 0 auto; aspect-ratio: 16/9; background: #000; }
.tri-journey__video iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* latest news */
.tri-news { padding: 64px 0; background: var(--tri-green); }
.tri-news .tri-section__title { color: #fff; }
.tri-news__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.tri-news__card { background: #fff; border-radius: 6px; overflow: hidden; display: flex; flex-direction: column; }
.tri-news__thumb img { width: 100%; height: 180px; object-fit: cover; display: block; }
.tri-news__body { padding: 20px; display: flex; flex-direction: column; gap: 10px; }
.tri-news__title { font-size: 18px; line-height: 1.3; margin: 0; font-family: var(--tri-serif); }
.tri-news__title a { color: #1e293b; text-decoration: none; }
.tri-news__excerpt { font-size: 14px; color: var(--tri-muted); }
.tri-news__more { color: var(--tri-pink); font-weight: 600; text-decoration: none; margin-top: auto; }
.tri-news .tri-cta-row .tri-button { background: #fff; color: var(--tri-green); }

/* social */
.tri-social { padding: 64px 0; background: #ececed; }

/* ============================================================= INNER PAGES */
.tri-hero--inner { padding: 80px 0; min-height: 0; }
.tri-richtext { max-width: 860px; margin: 0 auto; font-size: 16px; line-height: 1.7; }
.tri-richtext img { max-width: 100%; height: auto; }

/* partners: colored left label band + content (matches live) */
.tri-pband { display: grid; grid-template-columns: 300px 1fr; align-items: stretch; }
.tri-pband__label { display: flex; align-items: center; padding: 56px 40px; color: #fff; }
.tri-pband__label span { font-family: var(--tri-sans); font-size: 30px; font-weight: 600; line-height: 1.2; text-transform: uppercase; }
.tri-pband__content { padding: 56px 64px; }
.tri-pband--founding   .tri-pband__label { background: var(--tri-pink); }
.tri-pband--gov        .tri-pband__label { background: var(--tri-green); }
.tri-pband--additional .tri-pband__label { background: #4b5563; }
.tri-pband--gov, .tri-pband--additional { background: #f7f8f9; }

/* founding partners: logo + text rows */
.tri-partners-list { display: flex; flex-direction: column; gap: 48px; }
.tri-partner { display: grid; grid-template-columns: 320px 1fr; gap: 40px; align-items: center; }
.tri-partner--rev { direction: rtl; } .tri-partner--rev > * { direction: ltr; }
.tri-partner__logo img { max-width: 100%; height: auto; }
.tri-partner__title { font-family: var(--tri-sans); font-size: 28px; font-weight: 600; color: var(--tri-black); margin: 0 0 14px; }
.tri-partner__text { font-size: 16px; line-height: 1.65; }
.tri-button--sm { font-size: 14px; padding: 10px 22px; margin-top: 16px; }

/* additional partners */
.tri-addpartners { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.tri-addpartner__title { font-family: var(--tri-sans); font-size: 20px; font-weight: 600; margin: 0 0 10px; }

/* resource lists */
.tri-resgroup__intro { max-width: 820px; margin: 0 auto 28px; text-align: center; }
.tri-reslist { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px; }
.tri-rescard { background: #fff; border: 1px solid var(--tri-line); border-radius: 6px; padding: 22px 24px; }
.tri-rescard__sub { display: block; font-size: 13px; color: var(--tri-muted); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.tri-rescard__title { font-family: var(--tri-sans); font-weight: 600; color: var(--tri-black); text-decoration: none; line-height: 1.4; }
.tri-rescard__title:hover { color: var(--tri-pink); }

/* project cards grid */
.tri-project-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.tri-project-grid--sm { grid-template-columns: repeat(4, 1fr); }
.tri-project-card { position: relative; display: block; aspect-ratio: 4/3; border-radius: 6px; overflow: hidden; text-decoration: none; }
.tri-project-card__img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .4s ease; }
.tri-project-card:hover .tri-project-card__img { transform: scale(1.06); }
.tri-project-card__overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05), rgba(0,0,0,.6)); }
.tri-project-card__title { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 20px; color: #fff; font-family: var(--tri-sans); font-weight: 600; font-size: 22px; }
.tri-project-card--desc { aspect-ratio: auto; min-height: 320px; }
.tri-project-card__body { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 24px; color: #fff; }
.tri-project-card__body .tri-project-card__title { position: static; padding: 0 0 8px; display: block; }
.tri-project-card__desc { display: block; font-size: 14px; line-height: 1.5; color: rgba(255,255,255,.9); }

/* journey banner */
.tri-journey-banner { padding: 64px 0; background: #111; color: #fff; text-align: center; }
.tri-journey-banner .tri-section__title { color: #fff; margin-bottom: 8px; }
.tri-journey-banner__sub { color: rgba(255,255,255,.8); margin: 0 0 28px; font-size: 18px; }

/* image gallery */
.tri-gallery-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: 28px; }
.tri-gallery-grid__item { display: block; aspect-ratio: 1; overflow: hidden; border-radius: 4px; }
.tri-gallery-grid__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.tri-gallery-grid__item:hover img { transform: scale(1.08); }

/* pdf embed */
.tri-pdf-embed { position: relative; max-width: 900px; margin: 0 auto; aspect-ratio: 8.5/11; border: 1px solid var(--tri-line); }
.tri-pdf-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.tri-news__meta { font-size: 13px; color: var(--tri-muted); text-transform: uppercase; letter-spacing: .03em; }

/* lightbox */
.tri-lb { position: fixed; inset: 0; z-index: 99999; display: none; align-items: center; justify-content: center; background: rgba(0,0,0,.9); }
.tri-lb.is-open { display: flex; }
.tri-lb__img { max-width: 90vw; max-height: 86vh; box-shadow: 0 10px 40px rgba(0,0,0,.5); }
.tri-lb__close { position: absolute; top: 18px; right: 26px; background: none; border: 0; color: #fff; font-size: 42px; line-height: 1; cursor: pointer; }
.tri-lb__nav { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: 0; color: #fff; font-size: 60px; cursor: pointer; padding: 0 22px; opacity: .8; }
.tri-lb__nav:hover { opacity: 1; }
.tri-lb__prev { left: 8px; } .tri-lb__next { right: 8px; }

/* pagination */
.tri-pagination { margin-top: 40px; text-align: center; }
.tri-pagination .page-numbers { display: inline-block; padding: 8px 14px; margin: 0 3px; border: 1px solid var(--tri-line); border-radius: 4px; text-decoration: none; color: var(--tri-text); }
.tri-pagination .page-numbers.current { background: var(--tri-pink); color: #fff; border-color: var(--tri-pink); }

/* ---- responsive ---- */
@media (max-width: 1023px) {
	.tri-partner { grid-template-columns: 1fr; gap: 20px; }
	.tri-addpartners { grid-template-columns: 1fr; }
	.tri-reslist, .tri-project-grid, .tri-project-grid--sm { grid-template-columns: repeat(2, 1fr); }
	.tri-gallery-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1023px) {
	.tri-hero__title { font-size: 56px; }
	.tri-section__title { font-size: 30px; }
	.tri-home-hero .home-hero-title { font-size: 56px; }
	.tri-progress__value { font-size: 48px; }
}
@media (max-width: 768px) {
	.tri-section { padding: 44px 0; }
	.tri-hero { padding: 64px 0; }
	.tri-hero__title { font-size: 40px; }
	.tri-support-grid { grid-template-columns: 1fr; }
	.tri-home-hero .home-hero-title { font-size: 40px; }
	.tri-progress__grid { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }
	.tri-blocks__grid { grid-template-columns: 1fr; grid-template-areas: "block1" "block2" "block3" "block4" "block5"; }
	.tri-news__grid { grid-template-columns: 1fr; }
}
