/* Tinguha Core blocks. Uses the theme's colour and font presets, with fallbacks so the blocks still
   read well under another theme. Mobile first. */

.tg-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tg-icon { flex: none; vertical-align: middle; }

/* Share links. */
.tg-share { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-share__label { margin: 0 0 .75rem; font-weight: 600; }
.tg-share ul { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.tg-share :is(a, button) { display: inline-flex; align-items: center; gap: .45rem; padding: .5rem .95rem; border: 1px solid var(--wp--preset--color--line, #e2ddd4); border-radius: 999px; background: transparent; color: var(--wp--preset--color--ink, #152227); font: inherit; font-size: .9375rem; font-weight: 500; text-decoration: none; cursor: pointer; }
.tg-share :is(a, button):hover { border-color: var(--wp--preset--color--ink, #152227); }
.tg-share__done { margin: .5rem 0 0; min-height: 1.5em; color: var(--wp--preset--color--teal, #0e5a63); font-weight: 600; }

/* Social links: icons, or names with icons; "is-text" makes them a quiet row of text links. */
.tg-social { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.tg-social a { display: inline-grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; color: inherit; text-decoration: none; }
.tg-social.has-labels a { display: inline-flex; gap: .45rem; width: auto; height: auto; padding: .5rem .95rem; border-radius: 999px; border: 1px solid currentColor; font-weight: 600; }
.is-text .tg-social, .tg-social.is-text { gap: .5rem 1.5rem; }
.is-text .tg-social.has-labels a { padding: 0; border: 0; border-radius: 0; font-weight: 500; font-size: .9375rem; }
.is-text .tg-social.has-labels a:hover { text-decoration: underline; text-underline-offset: .22em; }
.is-text .tg-social .tg-icon { width: 16px; height: 16px; }
.tg-head + .is-text, .wp-block-tinguha-core-social-links.is-text { margin-bottom: 1.5rem; }

.tg-btn { display: inline-flex; align-items: center; gap: .45rem; padding: .85rem 1.4rem; border-radius: 8px; background: var(--wp--preset--color--teal, #0e5a63); color: #fff; font-weight: 600; font-size: .9375rem; text-decoration: none; line-height: 1.2; transition: background-color .2s; }
.tg-btn:hover { background: var(--wp--preset--color--teal-deep, #0a3f46); color: #fff; }
.tg-btn.is-outline { border-radius: 8px; background: transparent; color: var(--wp--preset--color--ink, #152227); border: 1.5px solid var(--wp--preset--color--ink, #152227); padding: calc(.85rem - 1.5px) calc(1.4rem - 1.5px); }
.tg-btn.is-outline:hover { background: var(--wp--preset--color--ink, #152227); color: #fff; }

/* Forms (the plugin's own; Fluent Forms replaces them on the demo). */
.tg-form__grid { display: grid; gap: 1.1rem 1.25rem; grid-template-columns: 1fr; }
@media (min-width: 640px) { .tg-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.tg-form__field { display: grid; gap: .4rem; margin: 0; }
.tg-form__field--wide, .tg-form__actions { grid-column: 1 / -1; }
.tg-form label { font-size: .9375rem; font-weight: 600; }
.tg-form :is(input, select, textarea) { width: 100%; box-sizing: border-box; padding: .8rem 1rem; border: 1px solid var(--wp--preset--color--line, #e2ddd4); border-radius: 8px; background: #fff; font: inherit; color: var(--wp--preset--color--ink, #152227); transition: border-color .2s, box-shadow .2s; }
.tg-form :is(input, select, textarea):focus { outline: none; border-color: var(--wp--preset--color--teal, #0e5a63); box-shadow: 0 0 0 3px rgba(14, 90, 99, .15); }
.tg-form__req { color: var(--wp--preset--color--coral, #b9441e); }
.tg-form__hp { position: absolute; left: -9999px; }
.tg-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin: .5rem 0 0; }
.tg-form__hint { font-size: .875rem; color: var(--wp--preset--color--muted, #56636a); }
.tg-form__notice { margin: 0 0 1rem; padding: .9rem 1rem; border-radius: 8px; color: var(--wp--preset--color--ink, #152227); }
.tg-form__notice--ok { background: #e3eee6; }
.tg-form__notice--error { background: #f6ddd2; }
/* Fluent Forms in the theme's look. */
.tg-form.is-fluent .ff-el-input--label label { font-size: .9375rem; font-weight: 600; }
.tg-form.is-fluent .ff-el-form-control { padding: .8rem 1rem; border: 1px solid var(--wp--preset--color--line, #e2ddd4); border-radius: 8px; font: inherit; }
.tg-form.is-fluent .ff-el-form-control:focus { border-color: var(--wp--preset--color--teal, #0e5a63); box-shadow: 0 0 0 3px rgba(14, 90, 99, .15); }
.tg-form.is-fluent .ff-btn-submit { padding: .9rem 1.6rem !important; border-radius: 999px !important; font-weight: 600 !important; }

.tg-editor-empty { padding: 1rem; border: 1px dashed #8a8f96; border-radius: 6px; color: #5c6168; }

@media print { .tg-float, .tg-share, .tg-menu__nav { display: none !important; } }

/* Impact numbers: four big figures on the teal band. */
.tg-impact { display: grid; gap: 1.5rem 2rem; margin: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 900px) { .tg-impact { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.tg-impact > div { display: flex; flex-direction: column-reverse; padding-top: 1rem; border-top: 1px solid rgba(255, 255, 255, .3); }
.tg-impact dd { margin: 0; font-family: var(--wp--preset--font-family--display, inherit); font-size: clamp(2.25rem, 1.6rem + 2.4vw, 3.75rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; }
.tg-impact dt { margin-top: .5rem; font-size: .9375rem; opacity: .8; }

/* Cards: programmes, projects, news. Photo, then text; the title link covers the card. */
:is(.tg-progs, .tg-projs, .tg-stories) { display: grid; gap: 1.5rem; margin: 0; padding: 0; list-style: none; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { :is(.tg-progs, .tg-projs, .tg-stories) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { :is(.tg-progs, .tg-projs, .tg-stories) { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; } }
:is(.tg-prog, .tg-proj, .tg-story) { position: relative; display: flex; flex-direction: column; }
:is(.tg-prog__photo, .tg-proj__photo, .tg-story__photo) { margin: 0; overflow: hidden; border-radius: 12px; background: var(--wp--preset--color--surface, #f0ebe3); }
:is(.tg-prog__photo, .tg-proj__photo, .tg-story__photo) img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
:is(.tg-prog, .tg-proj, .tg-story):hover img { transform: scale(1.03); }
:is(.tg-prog__title, .tg-proj__title, .tg-story__title) { margin: .9rem 0 0; font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.375rem !important; font-weight: 700; line-height: 1.2; letter-spacing: -.02em; }
:is(.tg-prog__title, .tg-proj__title, .tg-story__title) a { color: var(--wp--preset--color--ink, #152227); text-decoration: none; }
:is(.tg-prog__title, .tg-proj__title, .tg-story__title) a::after { content: ""; position: absolute; inset: 0; }
:is(.tg-prog, .tg-proj, .tg-story):has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--teal, #0e5a63); outline-offset: 4px; border-radius: 12px; }
:is(.tg-prog__title, .tg-proj__title, .tg-story__title) a:focus-visible { outline: none; }
.tg-prog__focus, .tg-story__excerpt, .tg-proj__place { margin: .4rem 0 0; color: var(--wp--preset--color--muted, #56636a); }
.tg-prog__count { margin: .75rem 0 0; font-weight: 600; color: var(--wp--preset--color--teal, #0e5a63); }
.tg-proj__meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin: 1rem 0 0; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--muted, #56636a); }
.tg-proj__meta + .tg-proj__title { margin-top: .4rem; }
.tg-status { color: var(--wp--preset--color--teal, #0e5a63); }
.tg-status.is-completed { color: var(--wp--preset--color--muted, #56636a); }
.tg-status.is-starting { color: #a3401f; }
.tg-proj__reached { margin: .6rem 0 0; font-size: .9375rem; }
.tg-proj__reached strong { font-variant-numeric: tabular-nums; }
.tg-story__date { margin: 1rem 0 0; font-size: .875rem; color: var(--wp--preset--color--muted, #56636a); }
.tg-story__date + .tg-story__title { margin-top: .3rem; }

/* Filters: rows of links, the current one filled. */
.tg-filters { display: grid; gap: .75rem; margin-bottom: var(--wp--preset--spacing--50, 2rem); padding-bottom: 1.25rem; border-bottom: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-filter { display: flex; flex-wrap: wrap; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.tg-filter a { display: inline-block; padding: .45rem .95rem; border: 1px solid var(--wp--preset--color--line, #e2ddd4); border-radius: 8px; background: #fff; color: var(--wp--preset--color--ink, #152227); font-size: .9375rem; font-weight: 500; text-decoration: none; }
.tg-filter a:hover { border-color: var(--wp--preset--color--ink, #152227); }
.tg-filter a[aria-current] { background: var(--wp--preset--color--ink, #152227); border-color: var(--wp--preset--color--ink, #152227); color: #fff; }
.tg-filters__count { margin: .25rem 0 0; font-size: .9375rem; color: var(--wp--preset--color--muted, #56636a); }

/* Reports library: cover, type and year, title, summary, the PDF link. */
.tg-reports { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-report { position: relative; display: grid; grid-template-columns: 72px 1fr; gap: 1.25rem; padding: 1.25rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e2ddd4); }
@media (min-width: 700px) { .tg-report { grid-template-columns: 96px 1fr; } }
.tg-report__cover { margin: 0; }
.tg-report__cover img { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1.414; object-fit: cover; border-radius: 4px; box-shadow: 0 6px 16px -6px rgba(21, 34, 39, .35); }
.tg-report__meta { margin: 0; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--coral, #b9441e); }
.tg-report__title { margin: .35rem 0 0; font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.25rem !important; font-weight: 700; line-height: 1.25; letter-spacing: -.015em; }
.tg-report__title a { color: var(--wp--preset--color--ink, #152227); text-decoration: none; }
.tg-report__title a::after { content: ""; position: absolute; inset: 0; }
.tg-report:has(a:focus-visible) { outline: 2px solid var(--wp--preset--color--teal, #0e5a63); outline-offset: 2px; }
.tg-report__title a:focus-visible { outline: none; }
.tg-report__desc { margin: .35rem 0 0; color: var(--wp--preset--color--muted, #56636a); }
.tg-report__file { display: flex; align-items: center; gap: .35rem; margin: .6rem 0 0; font-size: .875rem; font-weight: 600; color: var(--wp--preset--color--teal, #0e5a63); }

/* Partners: grouped tiles; or a strip of names. */
.tg-partners__group + .tg-partners__group { margin-top: var(--wp--preset--spacing--60, 3rem); }
.tg-partners__title { margin: 0 0 1rem; font-size: 1.25rem !important; font-weight: 700; }
.tg-tiles { display: grid; gap: 1rem; margin: 0; padding: 0; list-style: none; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 700px) { .tg-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.tg-tiles li { display: grid; gap: .35rem; padding: 1.5rem; border-radius: 12px; background: #fff; box-shadow: 0 1px 2px rgba(21, 34, 39, .05), 0 12px 32px -12px rgba(21, 34, 39, .14); }
.tg-tiles strong { font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.125rem; font-weight: 700; }
.tg-tiles span { color: var(--wp--preset--color--muted, #56636a); font-size: .9375rem; }
.tg-strip { display: flex; flex-wrap: wrap; gap: .5rem 2rem; margin: 0; padding: 0; list-style: none; font-family: var(--wp--preset--font-family--display, inherit); font-weight: 700; font-size: 1.0625rem; color: var(--wp--preset--color--muted, #56636a); }

/* Openings: one row each, Apply on the right. */
.tg-openings { display: grid; gap: 0; margin: 0 0 var(--wp--preset--spacing--60, 3rem); padding: 0; list-style: none; border-top: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-opening { display: grid; gap: 1rem; padding: 1.5rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e2ddd4); }
@media (min-width: 800px) { .tg-opening { grid-template-columns: 1fr auto; align-items: center; gap: 2rem; } }
.tg-opening__kind { margin: 0; font-size: .8125rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--wp--preset--color--teal, #0e5a63); }
.tg-opening__kind.is-volunteer { color: #a3401f; }
.tg-opening__title { margin: .35rem 0 0; font-family: var(--wp--preset--font-family--display, inherit); font-size: 1.375rem !important; font-weight: 700; letter-spacing: -.02em; }
.tg-opening__desc { margin: .35rem 0 0; color: var(--wp--preset--color--muted, #56636a); max-width: 64ch; }
.tg-opening__facts { display: flex; flex-wrap: wrap; gap: .25rem 1.5rem; margin: .6rem 0 0; padding: 0; list-style: none; font-size: .9375rem; }
.tg-opening__apply { margin: 0; }

/* Facts of a project. */
.tg-facts { display: grid; gap: 0; margin-block: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 1.5rem; border-top: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-facts > div { padding: .9rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-facts dt { font-size: .8125rem; color: var(--wp--preset--color--muted, #56636a); }
.tg-facts dd { margin: .15rem 0 0; font-weight: 600; }

/* Contact details. */
.tg-contact__list { display: grid; gap: 0; margin: 0 0 1.5rem; border-top: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-contact__list > div { padding: .9rem 0; border-bottom: 1px solid var(--wp--preset--color--line, #e2ddd4); }
.tg-contact__list dt { font-size: .8125rem; color: var(--wp--preset--color--muted, #56636a); }
.tg-contact__list dd { margin: .15rem 0 0; }
.tg-contact__list a { color: inherit; }

.tg-empty { margin: 0; padding: 1.5rem; border: 1px dashed var(--wp--preset--color--line, #e2ddd4); border-radius: 12px; color: var(--wp--preset--color--muted, #56636a); }
