/*
Theme Name: AYA-TCHAD
Theme URI: https://aya-tchad.org/
Author: Intside
Author URI: http://intside.com/
Description: De la terre au marché, sans rien perdre.
Version: 0.1
License: GNU General Public License v3 or later
License URI: http://www.gnu.org/licenses/gpl-3.0.html
Text Domain: ayatchad

This theme is licensed under the GPL.
*/

/*
 * AYA-TCHAD
 * 1.0 Tokens and base · 2.0 Navbar · 3.0 Buttons and shared parts · 4.0 Home
 * 5.0 Actions and projects · 6.0 Tadamon · 7.0 Impact and platform
 * 8.0 News and article · 9.0 Contact, legal, 404 · 10.0 Footer and modals
 * 11.0 Media Queries
 */

/* 1.0 Tokens and base */
:root {
  --forest-950: #0c1810;
  --forest-900: #14261a;
  --forest-800: #24402d;
  --forest-700: #2f5a37;
  --sage-500: #6f8f5e;
  --sorgho-400: #d9a441;
  --earth-600: #8a5a2b;
  --terracotta-600: #b5532b;
  --sand-50: #fbf8f1;
  --sand-100: #f3efe6;
  --sand-200: #ebe3d1;
  --sand-300: #e0d6c0;
  --sand-400: #cfc3a8;
  --sand-500: #9c8a66;
  --line: #d8cdb5;
  --ink-muted: #3b4a3e;
  --ink-soft: #6b6250;
  --on-dark: #cdd5c8;
  --on-dark-soft: #b8c2b3;
  --on-dark-faint: #9fb39f;
  --font-heading: 'Archivo', sans-serif;
  --font-body: 'Public Sans', system-ui, sans-serif;
  --font-mono: 'IBM Plex Mono', monospace;
  --header-height: 4.5625rem;
  --container-w: 100%;
  --hatch: repeating-linear-gradient(135deg, #d5c7a8 0 2px, #e0d4b8 2px 14px);
  --hatch-dark: repeating-linear-gradient(135deg, #1c3424 0 2px, #14261a 2px 14px);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 7rem;
}

body {
  margin: 0;
  background: var(--sand-100);
  color: var(--forest-900);
  font-family: var(--font-body);
  line-height: normal;
  -webkit-font-smoothing: antialiased;
}

[dir="rtl"],
[dir="rtl"] * {
  font-family: 'IBM Plex Sans Arabic', 'Archivo', sans-serif !important;
  letter-spacing: 0 !important;
}

img {
  max-width: 100%;
  height: auto;
}

a {
  color: var(--forest-900);
  text-decoration: none;
}

a:hover {
  color: var(--earth-600);
}

h1,
h2 {
  overflow-wrap: break-word;
  hyphens: manual;
  text-wrap: balance;
}

h1,
h2,
.h4,
.h5,
.h6 {
  font-family: var(--font-heading);
}

.print-only {
  display: none;
}

.bg-forest {
  background: var(--forest-900);
  color: var(--sand-100);
}

.bg-sand {
  background: var(--sand-200);
}

.bg-sorgho {
  background: var(--sorgho-400);
  color: var(--forest-900);
}

.bg-earth {
  background: var(--earth-600);
  color: var(--sand-100);
}

.tone-forest { background: var(--forest-900); color: var(--sand-100); }
.tone-green { background: var(--forest-700); color: var(--sand-100); }
.tone-elevage { background: #c9b48a; color: var(--forest-900); }
.tone-sage { background: var(--sage-500); color: #f7f3ea; }
.tone-zero { background: #e3d6b8; color: var(--forest-900); }
.tone-sorgho { background: var(--sorgho-400); color: var(--forest-900); }
.tone-earth { background: var(--earth-600); color: #f7f3ea; }
.tone-chat { background: var(--forest-800); color: var(--sand-100); }
.tone-sand { background: var(--sand-200); color: var(--forest-900); }

.label-mono {
  font: 600 0.75rem var(--font-mono);
  color: var(--earth-600);
}

.label-mono-sm {
  font: 600 0.6875rem var(--font-mono);
  color: var(--earth-600);
}

.label-track {
  letter-spacing: 0.1em;
}

.on-dark {
  color: var(--sorgho-400);
}

.on-sorgho {
  color: var(--forest-900);
}

.meta-mono {
  font: 500 0.6875rem var(--font-mono);
}

/* Gap different from the Bootstrap gutter: see CORE § cells */
.grid-1 { --x: calc((1.5rem - 1px) / 2); }
.grid-0 { --x: 0.75rem; }
.grid-14 { --x: 0.3125rem; }
.grid-16 { --x: 0.25rem; }
.grid-1,
.grid-0,
.grid-14,
.grid-16 {
  padding: 0 var(--x);
}

.grid-1 > .row > * > .grid-cell,
.grid-0 > .row > * > .grid-cell,
.grid-14 > .row > * > .grid-cell,
.grid-16 > .row > * > .grid-cell {
  margin-inline: calc(var(--x) * -1);
}

.grid-28 { --y: 0.125rem; }
.grid-40 { --y: 0.5rem; }
.grid-48 { --y: 0.75rem; }
.grid-56 { --y: 1rem; }
.grid-64 { --y: 1.25rem; }

/* 2.0 Navbar */
.navbar-expand-xl {
  position: fixed !important;
  top: 0 !important;
  width: 100%;
  z-index: 1030;
  padding-inline: 0;
  background: var(--forest-900);
  color: var(--sand-100);
  border-bottom: 1px solid var(--forest-800);
}

.navbar-expand-xl ~ main {
  padding-top: var(--header-height);
}

.navbar-brand {
  padding: 0;
  margin: 0;
}

.navbar-brand img {
  display: block;
  width: auto;
  height: 3rem;
}

.navbar-toggler {
  position: relative;
  width: 3rem;
  height: 3rem;
  padding: 0;
  border: 1.5px solid rgba(243, 239, 230, 0.4);
  border-radius: 50%;
  box-shadow: none !important;
}

.navbar-toggler span {
  position: absolute;
  left: 50%;
  width: 1.125rem;
  height: 2px;
  margin-left: -0.5625rem;
  border-radius: 2px;
  background: var(--sand-100);
  transition: transform 0.2s, opacity 0.2s;
}

.navbar-toggler span:nth-child(1) { top: 0.875rem; }
.navbar-toggler span:nth-child(2) { top: 1.3125rem; }
.navbar-toggler span:nth-child(3) { top: 1.75rem; }
.navbar-toggler[aria-expanded="true"] span:nth-child(1) { transform: translateY(0.4375rem) rotate(45deg); }
.navbar-toggler[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.navbar-toggler[aria-expanded="true"] span:nth-child(3) { transform: translateY(-0.4375rem) rotate(-45deg); }

.navbar-collapse {
  max-height: calc(100vh - var(--header-height));
  overflow-y: auto;
}

.navbar-nav {
  list-style: none;
  margin: 0;
}

.navbar-nav .menu-item {
  padding: 1rem 0;
  border-bottom: 1px solid var(--forest-800);
}

.navbar-nav .menu-item a {
  position: relative;
  display: block;
  padding-inline-end: 2rem;
  color: var(--sand-100);
  font: 800 1.625rem var(--font-heading);
  text-transform: uppercase;
}

.navbar-nav .menu-item a::after {
  content: "→";
  position: absolute;
  inset-inline-end: 0;
  top: 0.125rem;
  color: var(--sorgho-400);
  font-size: 1.25rem;
}

[dir="rtl"] .navbar-nav .menu-item a::after {
  content: "←";
}

.navbar-nav .menu-item a[aria-current="page"] {
  color: var(--sorgho-400);
}

.nav-actions {
  padding: 1.625rem 0 0.75rem;
}

.lang-switch {
  margin-bottom: 1.125rem;
  gap: 0.375rem;
}

.lang-switch button {
  flex: 1;
  padding: 0.75rem;
  border: 1.5px solid rgba(243, 239, 230, 0.4);
  border-radius: 999px;
  background: transparent;
  color: var(--sand-100);
  font: 600 0.875rem var(--font-mono);
}

.lang-switch button.is-active {
  background: var(--sand-100);
  color: var(--forest-900);
}

.nav-contact {
  padding-top: 1.5rem;
  color: var(--on-dark-faint);
  font: 500 0.8125rem/1.6 var(--font-body);
}

/* 3.0 Buttons and shared parts */
.btn {
  --bs-btn-line-height: normal;
  width: 100%;
  padding: 1.0625rem 1.625rem;
  border-radius: 999px;
  border: 1.5px solid transparent;
  font: 700 0.9375rem var(--font-heading);
}

.btn-cream { background: var(--sand-100); color: var(--forest-900); }
.btn-cream:hover, .btn-cream:focus-visible { background: #fff; color: var(--forest-900); }
.btn-outline-cream { border-color: var(--sand-100); background: transparent; color: var(--sand-100); }
.btn-outline-cream:hover, .btn-outline-cream:focus-visible { background: rgba(243, 239, 230, 0.1); color: var(--sand-100); border-color: var(--sand-100); }
.btn-forest { background: var(--forest-900); color: var(--sand-100); }
.btn-forest:hover, .btn-forest:focus-visible { background: var(--forest-800); color: var(--sand-100); }
.btn-outline-forest { border-color: var(--forest-900); background: transparent; color: var(--forest-900); }
.btn-outline-forest:hover, .btn-outline-forest:focus-visible { background: rgba(20, 38, 26, 0.1); color: var(--forest-900); border-color: var(--forest-900); }
.btn-sorgho { background: var(--sorgho-400); color: var(--forest-900); }
.btn-sorgho:hover, .btn-sorgho:focus-visible { background: #e6b65a; color: var(--forest-900); }
.btn:active { border-color: transparent; }
.btn-sm-pad { padding: 0.9375rem 1.5rem; }

.nav-actions .btn {
  padding: 1.125rem;
  font-size: 1.0625rem;
  font-weight: 800;
}

.btn-row {
  margin-bottom: -0.625rem;
}

.btn-row .btn {
  margin-bottom: 0.625rem;
  vertical-align: top;
}

.chip-row {
  margin-bottom: -0.5rem;
}

.chip-row .chip {
  margin-bottom: 0.5rem;
  vertical-align: top;
}

.chip-row .chip:not(:last-child) {
  margin-inline-end: 0.5rem;
}

.chip {
  display: inline-block;
  padding: 0.375rem 0.75rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font: 600 0.75rem var(--font-mono);
}

.chip-line { border-color: currentColor; }
.chip-sorgho { background: var(--sorgho-400); color: var(--forest-900); }
.chip-shade { background: rgba(0, 0, 0, 0.14); }
.chip-sand { background: var(--sand-200); }

.filter {
  padding: 0.625rem 1.125rem;
  border: 1.5px solid var(--forest-900);
  border-radius: 999px;
  background: transparent;
  color: var(--forest-900);
  font: 600 0.875rem var(--font-heading);
}

.filter.is-active {
  background: var(--forest-900);
  color: var(--sand-100);
}

.filter-count {
  margin-inline-start: 0.5rem;
  font: 600 0.6875rem var(--font-mono);
  opacity: 0.7;
}

.text-link {
  border: 0;
  padding: 0;
  background: none;
  color: var(--forest-900);
  font: 700 0.875rem var(--font-heading);
  text-decoration: underline;
}

.back-link {
  display: inline-block;
  font: 600 0.8125rem var(--font-mono);
  color: inherit;
}

.back-link:hover {
  color: inherit;
  text-decoration: underline;
}

.section-title {
  margin: 0;
  font: 800 2.25rem/1 var(--font-heading);
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.page-hero-title {
  margin: 0;
  font: 900 2.25rem/0.92 var(--font-heading);
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.page-hero-title-tall { line-height: 0.9; }
.page-hero-title-legal { font-size: 2.125rem; }

.page-hero-lead {
  max-width: 42.5rem;
  margin: 0;
  color: var(--on-dark);
  font: 400 1.1875rem/1.5 var(--font-body);
}

.page-hero-lead-sm {
  font-size: 1.125rem;
  line-height: 1.55;
}

/* Image placeholder, as in the mockup */
.placeholder-img {
  --ph-inset: 0.75rem;
  position: relative;
  display: block;
  border-radius: 1rem;
  background: var(--hatch);
}

.placeholder-img > span {
  position: absolute;
  bottom: var(--ph-inset);
  inset-inline-start: var(--ph-inset);
  max-width: calc(100% - var(--ph-inset) * 2);
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  background: var(--sand-100);
  color: #5b513c;
  font: 500 0.6875rem var(--font-mono);
}

.placeholder-img-lg {
  --ph-inset: 1.25rem;
  border-radius: 1.375rem;
}

.placeholder-img-lg > span {
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
}

.news-card {
  gap: 0.75rem;
  color: var(--forest-900);
  transition: transform 0.2s;
}

.news-card:hover {
  color: var(--forest-900);
  transform: translateY(-3px);
}

.news-card .placeholder-img {
  aspect-ratio: 16 / 10;
  width: 100%;
}

.news-card-title {
  margin: 0;
  font: 700 1.3125rem/1.2 var(--font-heading);
}

.news-card-text {
  margin: 0;
  color: var(--ink-muted);
  font: 400 0.875rem/1.5 var(--font-body);
}

.news-card-more {
  margin-top: auto;
  font: 700 0.8125rem var(--font-heading);
  text-decoration: underline;
}

.action-card {
  gap: 1.5rem;
  min-height: 15.625rem;
  height: 100%;
  padding: 1.5rem;
  border-radius: 1.125rem;
  transition: transform 0.2s;
}

.action-card.tone-forest:hover, .action-card.tone-green:hover, .action-card.tone-chat:hover { color: var(--sand-100); }
.action-card.tone-sage:hover, .action-card.tone-earth:hover { color: #f7f3ea; }
.action-card.tone-elevage:hover, .action-card.tone-zero:hover, .action-card.tone-sorgho:hover, .action-card.tone-sand:hover { color: var(--forest-900); }

.action-card:hover {
  transform: translateY(-4px);
}

.action-card-head {
  gap: 0.625rem;
  width: 100%;
  font: 500 0.6875rem var(--font-mono);
  opacity: 0.85;
}

.action-card-status {
  text-align: end;
}

.action-card-title {
  margin: 0 0 0.625rem;
  font: 800 1.6875rem/1.05 var(--font-heading);
  letter-spacing: -0.01em;
}

.action-card-text {
  margin: 0;
  font: 400 0.875rem/1.45 var(--font-body);
  opacity: 0.9;
}

.action-card-public {
  margin: 0.875rem 0 0;
  opacity: 0.75;
}

.band-title {
  max-width: 40rem;
  margin: 0;
  font: 900 2rem/0.95 var(--font-heading);
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

/* 4.0 Home */
.home-hero {
  position: relative;
  min-height: min(86vh, 47.5rem);
  overflow: hidden;
  background: var(--hatch-dark);
}

.home-hero::after {
  content: "";
  position: absolute;
  top: 2rem;
  inset-inline-end: calc((100% - var(--container-w)) / 2 + 0.75rem);
  width: 24rem;
  max-width: calc(100% - 1.5rem);
  height: 1rem;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='384' height='16'%3E%3Ctext x='384' y='12' text-anchor='end' font-family='monospace' font-size='12' font-weight='500' fill='%239fb39f'%3E%5B photo plein cadre · jeunes au BootCamp, N'Djamena %5D%3C/text%3E%3C/svg%3E") no-repeat right center / contain;
  pointer-events: none;
}

[dir="rtl"] .home-hero::after {
  background-position: left center;
}

.home-hero-eyebrow {
  margin-bottom: 1.5rem;
}

.home-hero-title {
  max-width: 68.75rem;
  margin: 0 0 2.25rem;
  font: 900 2.125rem/0.9 var(--font-heading);
  letter-spacing: -0.035em;
  text-transform: uppercase;
  text-wrap: balance;
}

.home-hero-title span {
  color: var(--sorgho-400);
}

.home-hero-lead {
  max-width: 33.75rem;
  margin: 0;
  color: #d6dccf;
  font: 400 1.1875rem/1.5 var(--font-body);
}

.stat-cell {
  height: 100%;
  padding-block: 2.25rem;
  padding-inline: 0 1.25rem;
}

.stat-value {
  font: 900 2.75rem/1 var(--font-heading);
}

.stat-label {
  margin-top: 0.625rem;
  font: 600 0.9375rem var(--font-body);
}

.stat-source {
  margin-top: 0.375rem;
  opacity: 0.75;
}

.home-pitch-title {
  margin: 0;
  font: 800 2.5rem/0.98 var(--font-heading);
  letter-spacing: -0.03em;
  text-transform: uppercase;
}

.home-pitch-text {
  margin: 0;
  color: var(--ink-muted);
  font: 400 1.1875rem/1.55 var(--font-body);
}

.list-row {
  display: block;
  padding: 1rem 0.875rem;
  border-top: 1px solid var(--line);
  color: var(--forest-900);
}

.list-row:hover {
  background: var(--sand-200);
  color: var(--forest-900);
}

.list-row-swatch {
  display: block;
  width: 0.875rem;
  height: 0.875rem;
  border: 1px solid rgba(20, 38, 26, 0.25);
  border-radius: 0.25rem;
}

.list-row-name {
  display: block;
  font: 800 1.1875rem var(--font-heading);
}

.list-row-kind {
  color: var(--earth-600);
}

.list-row-text {
  display: block;
  margin-top: 0.25rem;
  color: var(--ink-muted);
  font: 400 0.9375rem/1.45 var(--font-body);
}

.search-form input {
  display: block;
  width: 100%;
  margin-bottom: 0.625rem;
  padding: 1rem 1.5rem;
  border: 0;
  border-radius: 999px;
  background: var(--sand-50);
  color: var(--forest-900);
  font: 400 1rem var(--font-body);
}

.search-form input:focus-visible {
  outline: 2px solid var(--sorgho-400);
  outline-offset: 2px;
}

.search-status {
  color: var(--ink-muted);
  font: 500 0.9375rem var(--font-body);
}

.search-list .list-row-status {
  color: var(--earth-600);
}

.list-row-status {
  display: block;
  padding-inline-start: 1.75rem;
  color: var(--ink-muted);
  font: 600 0.6875rem var(--font-mono);
}

.split-title {
  margin: 0 0 1.375rem;
  font: 800 2.125rem/1 var(--font-heading);
  letter-spacing: -0.025em;
}

.split-title-upper {
  font-size: 2.25rem;
  text-transform: uppercase;
}

.split-text {
  margin: 0 0 1.75rem;
  color: var(--ink-muted);
  font: 400 1.0625rem/1.55 var(--font-body);
}

.split-text-dark {
  margin-bottom: 2.25rem;
  color: var(--on-dark);
  font-size: 1.125rem;
}

.home-field-photo {
  min-height: 28.75rem;
  height: 100%;
}

.step-cell {
  height: 100%;
  padding-top: 0.875rem;
  border-top: 2px solid var(--sorgho-400);
}

.step-number {
  font: 900 1.875rem var(--font-heading);
  color: var(--sorgho-400);
}

.step-title {
  margin: 0.375rem 0;
  font: 700 1rem var(--font-heading);
}

.step-text {
  margin: 0;
  color: var(--on-dark-soft);
  font: 400 0.875rem/1.45 var(--font-body);
}

.phones {
  gap: 1.25rem;
}

.phone-smart {
  width: 15.625rem;
  padding: 0.625rem;
  border-radius: 1.875rem;
  background: var(--forest-950);
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.4);
}

.phone-screen {
  min-height: 27.5rem;
  padding: 1.125rem 0.875rem;
  border-radius: 1.375rem;
  background: var(--sand-100);
  color: var(--forest-900);
}

.phone-title {
  font: 800 1.0625rem var(--font-heading);
}

.phone-meta {
  margin: 0.25rem 0 0.75rem;
  color: var(--earth-600);
  font: 500 0.625rem var(--font-mono);
}

.phone-row {
  padding: 0.6875rem 0;
  border-bottom: 1px solid var(--sand-300);
}

.phone-product {
  font: 600 0.875rem var(--font-body);
}

.phone-price {
  font: 600 0.8125rem var(--font-mono);
}

.phone-foot {
  color: #a39a82;
  font: 500 0.59375rem var(--font-mono);
}

.phone-basic {
  width: 10.625rem;
  padding: 0.875rem 0.625rem;
  border-radius: 1.375rem;
  background: #2b2b28;
}

.phone-basic-screen {
  min-height: 9.375rem;
  padding: 0.625rem;
  border-radius: 0.375rem;
  background: #b7c4a3;
  color: #1b2414;
  font: 500 0.6875rem/1.5 var(--font-mono);
}

.phone-basic-note {
  margin-top: 0.625rem;
  color: #bdb6a5;
  text-align: center;
  font: 500 0.625rem var(--font-mono);
}

.partners-head {
  margin-bottom: 0.5rem;
  padding-top: 1.125rem;
  border-top: 1px solid var(--forest-900);
}

.partners-list {
  border-bottom: 1px solid #d8ccb2;
}

.partner-cell {
  gap: 0.875rem;
  height: 100%;
  padding: 2rem 1.5rem;
  border-top: 1px solid #d8ccb2;
}

.partner-logo {
  width: 100%;
  max-width: 12.5rem;
  height: 4rem;
  object-fit: contain;
}

.partner-name {
  color: var(--ink-soft);
  text-align: center;
}

/* 5.0 Actions and projects */
.filter-row {
  margin-bottom: -0.5rem;
}

.filter-row .filter {
  margin-bottom: 0.5rem;
  vertical-align: top;
}

.filter-row .filter:not(:last-child) {
  margin-inline-end: 0.25rem;
}

.group-head {
  margin-bottom: 0.375rem;
  padding-top: 1rem;
  border-top: 2px solid var(--forest-900);
}

.group-title {
  display: inline;
  margin: 0;
  font: 800 1.75rem/1 var(--font-heading);
  text-transform: uppercase;
}

.group-count {
  margin-inline-start: 0.875rem;
  color: var(--earth-600);
  font: 600 0.8125rem var(--font-mono);
}

.group-text {
  max-width: 40rem;
  margin: 0 0 1.375rem;
  color: var(--ink-muted);
  font: 400 1rem/1.5 var(--font-body);
}

.action-hero-title {
  margin: 0 0 1.5rem;
  font: 900 2rem/0.9 var(--font-heading);
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.action-hero-lead {
  max-width: 47.5rem;
  margin: 0;
  font: 600 1.375rem/1.3 var(--font-heading);
}

.action-intro {
  margin: 0 0 1.75rem;
  font: 400 1.25rem/1.55 var(--font-body);
}

.climate-box {
  padding: 1.375rem;
  border-radius: 1rem;
  background: var(--sand-200);
}

.climate-text {
  margin: 0;
  font: 600 1.0625rem/1.45 var(--font-heading);
}

.axis-row {
  position: relative;
  padding: 1rem 0;
  padding-inline-start: 3.25rem;
  border-bottom: 1px solid var(--line);
}

.axis-number {
  position: absolute;
  inset-inline-start: 0;
  top: 1.125rem;
  color: var(--earth-600);
  font: 600 0.8125rem var(--font-mono);
}

.axis-title {
  margin: 0 0 0.25rem;
  font: 700 1.125rem var(--font-heading);
}

.axis-text {
  margin: 0;
  color: var(--ink-muted);
  font: 400 0.9375rem/1.5 var(--font-body);
}

.info-card {
  height: 100%;
  padding: 1.625rem;
  border-radius: 1.125rem;
}

.info-card-title {
  margin: 0;
  font: 700 1.25rem/1.3 var(--font-heading);
}

.info-card-text {
  margin: 0;
  font: 500 1rem/1.45 var(--font-body);
}

.cta-title {
  max-width: 40rem;
  margin: 0;
  font: 900 1.875rem/1 var(--font-heading);
  text-transform: uppercase;
}

.project-list {
  border-top: 2px solid var(--forest-900);
}

.project-item {
  display: block;
  padding: 1.75rem 1rem;
  border-bottom: 1px solid var(--sand-400);
  color: var(--forest-900);
  transition: background 0.2s;
}

.project-item:hover {
  background: var(--sand-200);
  color: var(--forest-900);
}

.project-badge {
  display: block;
  margin-bottom: 0.625rem;
  letter-spacing: 0.08em;
}

.project-name {
  display: block;
  font: 800 1.625rem/1 var(--font-heading);
  letter-spacing: -0.015em;
  text-transform: uppercase;
}

.project-text {
  display: block;
  margin-bottom: 0.5rem;
  color: var(--ink-muted);
  font: 400 1.0625rem/1.45 var(--font-body);
  text-wrap: pretty;
}

.project-public {
  color: var(--ink-soft);
  font: 500 0.75rem var(--font-mono);
}

.project-more {
  display: block;
  margin-top: 0.75rem;
  font: 700 0.9375rem var(--font-heading);
}

.status-live { background: var(--forest-700); color: var(--sand-100); }
.status-done { background: var(--forest-900); color: var(--sand-100); }
.status-prep { background: var(--sorgho-400); color: var(--forest-900); }

.empty-text {
  margin: 0;
  padding: 2rem 0;
  color: var(--ink-soft);
  font: 400 1rem var(--font-body);
}

.join-box {
  padding: 1.75rem 1.25rem;
  border-radius: 1.125rem;
  background: var(--sand-200);
}

.join-box-title {
  margin: 0;
  font: 800 1.375rem/1.15 var(--font-heading);
}

/* 6.0 Tadamon */
.project-title {
  max-width: 68.75rem;
  margin: 0 0 1.25rem;
  font: 900 1.875rem/0.92 var(--font-heading);
  letter-spacing: -0.035em;
  text-transform: uppercase;
}

.project-sub {
  margin: 0 0 2.5rem;
  color: var(--ink-soft);
  font: 500 0.9375rem var(--font-mono);
}

.project-photo {
  aspect-ratio: 21 / 8;
  min-height: 12rem;
  width: 100%;
}

.fact-cell {
  height: 100%;
  padding-top: 0.875rem;
  border-top: 2px solid var(--forest-900);
}

.fact-key {
  margin-bottom: 0.375rem;
}

.fact-value {
  margin: 0;
  font: 700 1.1875rem/1.3 var(--font-heading);
}

.project-nav {
  gap: 0.25rem;
}

.project-nav a {
  padding: 0.75rem 1rem;
  border-radius: 0.75rem;
  color: var(--forest-900);
  font: 700 0.9375rem var(--font-heading);
}

.project-nav a.is-active {
  background: var(--forest-900);
  color: var(--sand-100);
}

.project-part {
  padding-bottom: 3.5rem;
  margin-bottom: 3.5rem;
  border-bottom: 1px solid var(--sand-400);
}

.project-part:last-child {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.project-part-title {
  margin: 0 0 1.5rem;
  font: 800 2.25rem/1.05 var(--font-heading);
}

.project-part-title-tight {
  margin-bottom: 0.625rem;
}

.project-part-lead {
  max-width: 45rem;
  margin: 0 0 1.25rem;
  font: 400 1.1875rem/1.6 var(--font-body);
}

.project-part-note {
  margin: 0 0 1.375rem;
  color: var(--ink-soft);
  font: 500 0.875rem/1.5 var(--font-body);
}

.objective-row {
  position: relative;
  padding: 0.875rem 0;
  padding-inline-start: 1.75rem;
  border-bottom: 1px solid var(--line);
  font: 500 1.0625rem/1.5 var(--font-body);
}

.objective-row::before {
  content: "→";
  position: absolute;
  inset-inline-start: 0;
  color: var(--earth-600);
  font: 600 0.875rem/1.8 var(--font-mono);
}

[dir="rtl"] .objective-row::before {
  content: "←";
}

.sand-card {
  height: 100%;
  padding: 1.375rem;
  border-radius: 1rem;
  background: var(--sand-200);
}

.sand-card-title {
  margin: 0.5rem 0 0.375rem;
  font: 700 1.1875rem/1.25 var(--font-heading);
}

.sand-card-text {
  margin: 0;
  color: var(--ink-muted);
  font: 400 0.9375rem/1.5 var(--font-body);
}

.result-card {
  height: 100%;
  padding: 1.5rem;
  border-radius: 1rem;
}

.result-card-open {
  border: 1.5px dashed var(--sand-500);
}

.result-value {
  font: 900 2.5rem/1 var(--font-heading);
  color: #b9ad92;
}

.tone-forest .result-value {
  color: var(--sorgho-400);
}

.result-label {
  margin: 0.625rem 0 0.25rem;
  font: 600 0.9375rem var(--font-body);
}

.result-source {
  color: var(--ink-soft);
}

.tone-forest .result-source {
  color: inherit;
  opacity: 0.7;
}

.project-partner {
  height: 100%;
  padding: 1.125rem;
  border-radius: 1rem;
  background: var(--sand-200);
}

.project-partner-logo {
  display: block;
  width: 100%;
  height: 5rem;
  margin-bottom: 0.875rem;
  padding: 0.625rem;
  border-radius: 0.625rem;
  background: #fff;
  object-fit: contain;
}

.project-partner-name {
  margin: 0.875rem 0 0;
  font: 700 1.125rem var(--font-heading);
}

.documents-box {
  padding: 1.75rem;
  border-radius: 1rem;
  background: var(--sand-200);
  color: var(--ink-muted);
  font: 500 1rem/1.5 var(--font-body);
}

/* 7.0 Impact and platform */
.indicator-card {
  min-height: 13.75rem;
  height: 100%;
  padding: 1.625rem;
  border-radius: 1.125rem;
}

.indicator-state {
  font: 600 0.6875rem var(--font-mono);
  opacity: 0.8;
}

.indicator-value {
  margin: auto 0 0.625rem;
  font: 900 2.75rem/1 var(--font-heading);
}

.indicator-label {
  margin: 0 0 0.375rem;
  font: 700 1.0625rem var(--font-heading);
}

.indicator-source {
  opacity: 0.75;
}

.block-title {
  margin: 0 0 1.75rem;
  font: 800 2rem/1 var(--font-heading);
  text-transform: uppercase;
}

.milestone {
  padding: 1.25rem 0;
  border-bottom: 1px solid var(--line);
}

.milestone-year {
  color: var(--earth-600);
  font: 600 0.875rem var(--font-mono);
}

.milestone-title {
  margin: 0;
  font: 700 1.25rem/1.3 var(--font-heading);
}

.milestone-kind {
  color: var(--ink-soft);
  font: 500 0.8125rem var(--font-body);
}

.story-photo {
  --ph-inset: 1.125rem;
  aspect-ratio: 4 / 3;
  border: 1px solid #2c4a35;
  border-radius: 1.125rem;
  background: var(--hatch-dark);
}

.story-photo > span {
  padding: 0;
  background: transparent;
  color: var(--on-dark-faint);
  font-size: 0.75rem;
}

.story-quote {
  margin: 0 0 1.25rem;
  font: 800 1.75rem/1.15 var(--font-heading);
}

.story-source {
  margin: 0;
  color: var(--on-dark-soft);
  font: 500 0.8125rem var(--font-mono);
}

.pub-card {
  gap: 0.625rem;
  min-height: 11.25rem;
  height: 100%;
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--sand-200);
}

.pub-title {
  margin: 0;
  font: 700 1.25rem/1.25 var(--font-heading);
}

.pub-state {
  margin-top: auto;
  color: var(--ink-soft);
  font: 600 0.8125rem var(--font-body);
}

.market-title {
  margin: 0;
  font: 800 1.875rem/1 var(--font-heading);
}

.market-box {
  overflow: hidden;
  border: 1px solid var(--sand-300);
  border-radius: 1.125rem;
  background: var(--sand-50);
}

.market-table {
  width: 100%;
  border-collapse: collapse;
}

.market-table th {
  padding: 0.875rem 0.375rem;
  background: var(--sand-200);
  color: var(--ink-soft);
  text-align: start;
  font: 600 0.6875rem var(--font-mono);
}

.market-table td {
  padding: 1rem 0.375rem;
  border-top: 1px solid #ece3cf;
  vertical-align: middle;
}

.market-table th:first-child,
.market-table td:first-child {
  padding-inline-start: 0.875rem;
}

.market-table th:last-child,
.market-table td:last-child {
  padding-inline-end: 0.875rem;
}

.market-product { font: 700 0.9375rem var(--font-heading); }
.market-unit { color: var(--ink-soft); font: 500 0.75rem var(--font-body); }
.market-price { font: 600 0.8125rem var(--font-mono); white-space: nowrap; }
.market-trend { font: 600 0.75rem var(--font-mono); white-space: nowrap; }
.trend-up { color: var(--forest-700); }
.trend-down { color: var(--terracotta-600); }
.trend-flat { color: var(--ink-soft); }

.market-foot {
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  border-top: 1px solid #ece3cf;
  color: var(--earth-600);
  font: 500 0.75rem var(--font-mono);
}

.phase-card {
  height: 100%;
  padding: 1.625rem;
  border-radius: 1.125rem;
}

.phase-card-open {
  border: 1.5px dashed var(--sand-500);
}

.phase-head {
  margin-bottom: 1.375rem;
  font: 600 0.6875rem var(--font-mono);
}

.phase-title {
  margin: 0 0 0.875rem;
  font: 800 1.625rem/1.05 var(--font-heading);
}

.phase-text {
  margin: 0 0 0.875rem;
  font: 400 0.9375rem/1.5 var(--font-body);
  opacity: 0.9;
}

.phase-cond {
  margin: 0;
  font: 500 0.75rem/1.5 var(--font-mono);
  opacity: 0.75;
}

/* 8.0 News and article */
.news-grid-wrap {
  margin-bottom: -1.75rem;
}

.featured-card {
  display: block;
  overflow: hidden;
  border-radius: 1.375rem;
  background: var(--sand-200);
  color: var(--forest-900);
}

.featured-card:hover {
  color: var(--forest-900);
}

.featured-photo {
  --ph-inset: 1.125rem;
  min-height: 20rem;
  height: 100%;
  border-radius: 0;
}

.featured-photo > span {
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
}

.featured-body {
  display: block;
  padding: 1.5rem;
}

.featured-body > * {
  display: block;
}

.featured-body > :not(:last-child) {
  margin-bottom: 0.875rem;
}

.featured-title {
  margin: 0;
  font: 800 1.75rem/1.05 var(--font-heading);
  letter-spacing: -0.02em;
}

.featured-text {
  margin: 0;
  color: var(--ink-muted);
  font: 400 1.0625rem/1.55 var(--font-body);
}

.featured-more {
  font: 700 0.875rem var(--font-heading);
  text-decoration: underline;
}

.newsletter-title {
  margin: 0 0 0.625rem;
  font: 900 1.875rem/1 var(--font-heading);
  text-transform: uppercase;
}

.newsletter-text {
  margin: 0;
  font: 400 1rem/1.5 var(--font-body);
}

.newsletter-done {
  padding: 1.125rem;
  border-radius: 1rem;
  background: var(--forest-900);
  color: var(--sand-100);
  font: 700 1rem var(--font-heading);
}

.read-bar {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1040;
  height: 4px;
  background: rgba(20, 38, 26, 0.08);
}

.read-bar span {
  display: block;
  width: 0;
  height: 100%;
  background: var(--sorgho-400);
  transition: width 0.12s linear;
}

.article-title {
  max-width: 61.25rem;
  margin: 0 0 1.375rem;
  font: 900 1.875rem/0.95 var(--font-heading);
  letter-spacing: -0.03em;
  text-transform: uppercase;
  text-wrap: balance;
}

.article-chapo {
  max-width: 53.75rem;
  margin: 0 0 1.5rem;
  color: var(--ink-muted);
  font: 500 1.125rem/1.5 var(--font-body);
}

.article-author {
  position: relative;
  min-height: 2.75rem;
  margin: 2.5rem 0 2rem;
  padding-inline-start: 3.5rem;
}

.article-avatar {
  position: absolute;
  inset-inline-start: 0;
  top: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--forest-900);
  color: var(--sorgho-400);
  text-align: center;
  font: 900 0.875rem/2.75rem var(--font-heading);
}

.article-author-name {
  display: block;
  font: 700 0.9375rem var(--font-heading);
}

.article-author-meta {
  color: var(--ink-soft);
  font: 500 0.75rem var(--font-mono);
}

.article-photo {
  aspect-ratio: 21 / 9;
  min-height: 11rem;
  width: 100%;
  border-radius: 1.375rem;
}

.article-caption {
  margin-top: 0.625rem;
  color: var(--ink-soft);
  font: 500 0.75rem var(--font-mono);
}

.article-aside {
  gap: 1rem;
}

.toc-box {
  padding: 1.125rem;
  border: 1px solid var(--sand-300);
  border-radius: 1.125rem;
  background: var(--sand-50);
}

.toc-link {
  position: relative;
  display: block;
  padding-block: 0.5rem;
  padding-inline: 2.625rem 0;
  border-inline-start: 3px solid var(--sand-300);
  color: var(--ink-soft);
  font: 500 0.875rem/1.35 var(--font-body);
}

.toc-link:hover {
  color: var(--forest-900);
}

.toc-link.is-active {
  border-inline-start-color: var(--sorgho-400);
  color: var(--forest-900);
  font-weight: 700;
}

.toc-number {
  position: absolute;
  inset-inline-start: 0.75rem;
  top: 0.625rem;
  color: var(--earth-600);
  font: 600 0.6875rem var(--font-mono);
}

.share-box {
  padding: 1.125rem;
  border-radius: 1.125rem;
  background: var(--sand-200);
}

.share-row {
  gap: 0.5rem;
  margin-top: 0.625rem;
}

.share-btn {
  width: 2.75rem;
  height: 2.75rem;
  padding: 0;
  border: 1.5px solid var(--forest-900);
  border-radius: 50%;
  background: transparent;
  color: var(--forest-900);
}

.share-btn:hover {
  background: var(--forest-900);
  color: var(--sand-100);
}

.share-status {
  margin-top: 0.625rem;
  color: var(--forest-700);
  font: 600 0.8125rem var(--font-body);
}

.article-main {
  max-width: 47.5rem;
}

.article-facts {
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--line);
}

.article-fact {
  height: 100%;
  padding: 0.875rem 1rem;
  background: var(--forest-900);
  color: var(--sand-100);
}

.article-fact-top {
  height: calc(100% - 1px);
  margin-bottom: 1px;
}

.article-fact-key {
  margin-bottom: 0.25rem;
  color: var(--sorgho-400);
  font: 600 0.625rem var(--font-mono);
}

.article-fact-value {
  font: 700 0.9375rem/1.3 var(--font-heading);
}

.article-part-title {
  margin: 0;
  font: 800 1.5rem/1.15 var(--font-heading);
  letter-spacing: -0.015em;
}

.article-part-number {
  margin-inline-end: 0.875rem;
  color: var(--earth-600);
  font: 600 0.8125rem var(--font-mono);
  letter-spacing: 0;
}

.article-part-text {
  margin: 0;
  font: 400 1.1875rem/1.7 var(--font-body);
  text-wrap: pretty;
}

.article-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.article-list li {
  position: relative;
  padding-inline-start: 2rem;
  font: 400 1.125rem/1.55 var(--font-body);
}

.article-list li + li {
  margin-top: 0.625rem;
}

.article-list li::before {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  top: 0.5625rem;
  width: 0.625rem;
  height: 0.625rem;
  border-radius: 3px;
  background: var(--sorgho-400);
}

.article-quote {
  margin: 1.5rem 0 0.5rem;
  padding: 1.375rem 1.625rem;
  border-radius: 1.125rem;
  background: var(--forest-900);
  color: var(--sand-100);
}

.article-quote-text {
  margin: 0 0 0.625rem;
  font: 800 1.375rem/1.25 var(--font-heading);
}

.article-quote-who {
  color: var(--sorgho-400);
  font: 500 0.75rem var(--font-mono);
}

.article-key {
  padding: 1.375rem 1.5rem;
  border-radius: 1.125rem;
  background: var(--sorgho-400);
  color: var(--forest-900);
}

.article-key-title {
  margin: 0 0 0.75rem;
  font: 800 1.25rem var(--font-heading);
}

.article-key ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.article-key li {
  position: relative;
  padding-inline-start: 1.875rem;
  font: 600 1rem/1.45 var(--font-body);
}

.article-key li + li {
  margin-top: 0.5rem;
}

.article-key li::before {
  content: "✓";
  position: absolute;
  inset-inline-start: 0;
}

.article-sources {
  padding-top: 1rem;
  border-top: 1px solid var(--line);
}

.article-sources-text {
  margin: 0 0 0.375rem;
  color: var(--ink-muted);
  font: 500 0.8125rem/1.5 var(--font-body);
}

.article-sources-note {
  margin: 0;
  color: var(--earth-600);
  font: 500 0.75rem var(--font-mono);
}

.article-main > * + * {
  margin-top: 2.125rem;
}

.article-part > * + * {
  margin-top: 1rem;
}

.article-part > .article-quote {
  margin-block: 1.5rem 0.5rem;
}

.pager-btn {
  width: auto;
  padding: 0.625rem 1rem;
  border-color: var(--forest-900);
  background: transparent;
  color: var(--forest-900);
  font-size: 0.8125rem;
}

.pager-btn:hover,
.pager-btn:focus-visible {
  background: rgba(20, 38, 26, 0.1);
  color: var(--forest-900);
  border-color: var(--forest-900);
}

/* 9.0 Contact, legal, 404 */
.contact-sent {
  padding: 1.75rem;
  border-radius: 1.25rem;
  background: var(--forest-900);
  color: var(--sand-100);
}

.contact-sent-icon {
  width: 3.25rem;
  height: 3.25rem;
  margin-bottom: 0.625rem;
  border-radius: 50%;
  background: var(--sorgho-400);
  color: var(--forest-900);
  text-align: center;
  font: 900 1.5rem/3.25rem var(--font-heading);
}

.contact-sent-title {
  margin: 0 0 0.625rem;
  font: 800 1.625rem var(--font-heading);
}

.contact-sent-text {
  margin: 0 0 1rem;
  color: var(--on-dark);
  font: 400 1rem/1.5 var(--font-body);
}

.contact-box {
  padding: 1.5rem;
  border-radius: 1.25rem;
  background: var(--sand-200);
  font: 500 0.9375rem/1.5 var(--font-body);
}

.contact-map {
  --ph-inset: 1rem;
  aspect-ratio: 4 / 3;
  margin-top: 0.875rem;
  border-radius: 1.25rem;
}

.contact-map > span {
  padding: 0.375rem 0.625rem;
  font-size: 0.75rem;
}

.legal-date {
  margin: 0;
  color: var(--earth-600);
  font: 500 0.75rem var(--font-mono);
}

.legal-part {
  margin-top: 1.75rem;
  padding-top: 1rem;
  border-top: 2px solid var(--forest-900);
}

.legal-part-title {
  margin: 0 0 0.625rem;
  font: 800 1.5rem/1.15 var(--font-heading);
}

.legal-part-text {
  margin: 0;
  color: var(--ink-muted);
  font: 400 1.0625rem/1.65 var(--font-body);
}

.error-number {
  color: var(--sorgho-400);
  font: 900 6rem/0.8 var(--font-heading);
  letter-spacing: -0.05em;
}

.error-title {
  margin: 0 0 1.125rem;
  font: 900 2rem/1 var(--font-heading);
  letter-spacing: -0.025em;
  text-transform: uppercase;
}

.error-text {
  margin: 0 0 1.625rem;
  color: var(--on-dark);
  font: 400 1.0625rem/1.55 var(--font-body);
}

.lost-card {
  gap: 0.5rem;
  min-height: 8.75rem;
  height: 100%;
  padding: 1.375rem;
  border-radius: 1.125rem;
  background: var(--sand-200);
  color: var(--forest-900);
  transition: transform 0.2s;
}

.lost-card:hover {
  color: var(--forest-900);
  transform: translateY(-3px);
}

.lost-card-title {
  font: 800 1.375rem var(--font-heading);
}

.lost-card-text {
  color: var(--ink-muted);
  font: 400 0.875rem/1.45 var(--font-body);
}

.lost-card-arrow {
  margin-top: auto;
  font: 700 1.125rem var(--font-heading);
}

[dir="rtl"] .lost-card-arrow {
  transform: scaleX(-1);
  align-self: flex-end;
}

/* 10.0 Footer and modals */
.site-footer {
  background: var(--forest-900);
  color: #aebaa9;
  font: 400 0.875rem/1.6 var(--font-body);
}

.site-footer a {
  color: #aebaa9;
}

.site-footer a:hover {
  color: var(--sand-100);
  text-decoration: underline;
}

.footer-logo {
  display: block;
  width: auto;
  height: 6rem;
}

.footer-title {
  margin: 0 0 0.5rem;
  color: var(--sorgho-400);
  font: 600 0.6875rem var(--font-mono);
}

.footer-bottom {
  padding: 1.125rem 0 2rem;
  border-top: 1px solid var(--forest-800);
  font: 500 0.8125rem var(--font-body);
  text-align: center;
}

.footer-menu {
  margin: 0 -0.5625rem -0.625rem;
  padding: 0;
  list-style: none;
}

.footer-menu .menu-item {
  display: inline-block;
  margin: 0 0.5625rem 0.625rem;
}

.footer-copy {
  color: #6f8a72;
}

.modal-backdrop {
  --bs-backdrop-bg: #0c1810;
  --bs-backdrop-opacity: 0.6;
}

.modal {
  z-index: 1060;
}

.modal-dialog {
  max-width: 35rem;
}

.modal-content {
  max-height: 90vh;
  overflow: auto;
  padding: 2rem;
  border: 0;
  border-radius: 1.375rem;
  background: var(--sand-100);
  color: var(--forest-900);
}

.modal-head {
  gap: 1rem;
  margin-bottom: 1.25rem;
}

.modal-kicker {
  margin-bottom: 0.5rem;
}

.modal-title-text {
  margin: 0;
  font: 800 1.875rem/1.05 var(--font-heading);
}

.modal-close {
  width: 2.5rem;
  height: 2.5rem;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: var(--sand-200);
  color: var(--forest-900);
  font: 700 1.125rem var(--font-heading);
}

.modal-sent {
  padding: 1.5rem;
  border-radius: 1rem;
  background: var(--forest-900);
  color: var(--sand-100);
}

.modal-sent-title {
  margin: 0 0 0.375rem;
  font: 800 1.375rem var(--font-heading);
}

.modal-sent-text {
  margin: 0;
  color: var(--on-dark);
  font: 400 0.9375rem/1.5 var(--font-body);
}

/* 11.0 Media Queries */
@media (min-width: 576px) {
  .search-form { position: relative; }
  .search-form input { margin: 0; padding: 1.25rem 11rem 1.25rem 1.75rem; }
  .search-form .btn { position: absolute; top: 0.4375rem; inset-inline-end: 0.4375rem; width: auto; padding: 0.875rem 1.625rem; }
  [dir="rtl"] .search-form input { padding: 1.25rem 1.75rem 1.25rem 11rem; }

  .market-table { table-layout: fixed; }
  .market-table th:first-child, .market-table td:first-child { width: 40%; }
  .market-product { font-size: 1.0625rem; }
  .market-unit { font-size: 0.875rem; }
  .market-price { font-size: 0.9375rem; }
  .market-trend { font-size: 0.875rem; }

  /* Tokens */
  :root {
    --container-w: 540px;
    --header-height: 5.3125rem;
  }

  /* Navbar */
  .navbar-brand img {
    height: 3.75rem;
  }

  /* Shared parts */
  .band-title { font-size: 2.25rem; }

  /* Home */
  .stat-cell { border-inline-end: 1px solid rgba(20, 38, 26, 0.2); }
}

@media (min-width: 768px) {
  /* Tokens */
  :root {
    --container-w: 720px;
  }

  .grid-28,
  .grid-48 {
    margin-inline: calc(var(--y) * -1);
  }

  .grid-28 > .row > * > .grid-cell,
  .grid-48 > .row > * > .grid-cell {
    margin-inline: var(--y);
  }

  /* Shared parts */
  .btn {
    width: auto;
  }

  .btn-row .btn:not(:last-child) {
    margin-inline-end: 0.375rem;
  }

  .footer-menu { text-align: start; }
  .footer-copy { display: block; text-align: end; }

  .section-title { font-size: 2.25rem; }
  .page-hero-title { font-size: 3.375rem; }
  .page-hero-title-legal { font-size: 3.125rem; }
  .band-title { font-size: 2.25rem; }

  /* Home */
  .home-hero-title { font-size: 4.3125rem; }
  .home-pitch-title { font-size: 2.5rem; }
  .stat-cell { padding-inline: 1.5rem; }
  .grid-0 > .row > :nth-child(odd) > .stat-cell { padding-inline-start: 0; }
  .list-row-status { padding-inline-start: 0; text-align: end; }

  /* Actions and projects */
  .action-hero-title { font-size: 3.8125rem; }
  .project-item { padding-inline: 1.25rem; }
  .join-box { padding-inline: 1.5rem; }

  /* Tadamon */
  .project-title { font-size: 3.125rem; }
  .project-nav { position: sticky; top: 6.875rem; }

  /* Impact and platform */
  .market-table th, .market-table td { padding-inline: 0.5rem; }
  .market-table th:first-child, .market-table td:first-child { padding-inline-start: 1.4375rem; }
  .market-table th:last-child, .market-table td:last-child { padding-inline-end: 1.4375rem; }

  /* News and article */
  .article-title { font-size: 2.625rem; }
  .article-aside { position: sticky; top: 6rem; max-width: 18.75rem; }
  .featured-body { padding: 2rem; }

  /* Contact, legal, 404 */
  .error-number { font-size: 9.625rem; }
}

@media (min-width: 1200px) {
  /* Tokens */
  :root {
    --container-w: 1140px;
  }

  .grid-40,
  .grid-56,
  .grid-64 {
    margin-inline: calc(var(--y) * -1);
  }

  .grid-40 > .row > * > .grid-cell,
  .grid-56 > .row > * > .grid-cell,
  .grid-64 > .row > * > .grid-cell {
    margin-inline: var(--y);
  }

  /* Navbar */
  .navbar-collapse {
    max-height: none;
    overflow: visible;
    margin-inline-start: 1rem;
  }

  .menu-navigation-menu-container {
    margin-inline: auto;
    padding: 0.3125rem;
    border-radius: 999px;
    background: rgba(243, 239, 230, 0.08);
  }

  .navbar-nav {
    gap: 0.25rem;
  }

  .navbar-nav .menu-item {
    padding: 0;
    border: 0;
  }

  .navbar-nav .menu-item a {
    padding: 0.5625rem 1rem;
    border-radius: 999px;
    font: 600 0.875rem var(--font-heading);
    text-transform: none;
  }

  .navbar-nav .menu-item a::after,
  [dir="rtl"] .navbar-nav .menu-item a::after {
    content: none;
  }

  .navbar-nav .menu-item a:hover {
    background: rgba(243, 239, 230, 0.18);
    color: var(--sand-100);
  }

  .navbar-nav .menu-item a[aria-current="page"] {
    background: rgba(243, 239, 230, 0.16);
    color: var(--sand-100);
  }

  .nav-actions {
    gap: 0.75rem;
    padding: 0;
  }

  .lang-switch {
    gap: 0.125rem;
    margin: 0;
    padding: 0.25rem;
    border-radius: 999px;
    background: rgba(243, 239, 230, 0.08);
  }

  .lang-switch button {
    flex: none;
    padding: 0.375rem 0.625rem;
    border: 0;
    font-size: 0.75rem;
  }

  .nav-actions .btn {
    padding: 0.75rem 1.25rem;
    border: 0;
    font-size: 0.875rem;
    font-weight: 700;
    white-space: nowrap;
  }

  .nav-contact {
    display: none;
  }

  /* Shared parts */
  .section-title { font-size: 3rem; }
  .page-hero-title { font-size: 5.25rem; }
  .page-hero-title-legal { font-size: 4.875rem; }
  .band-title { font-size: 3.4375rem; }

  /* Home */
  .home-hero-title { font-size: 6.75rem; }
  .home-pitch-title { font-size: 3.75rem; }
  .stat-cell, .grid-0 > .row > :nth-child(odd) > .stat-cell { padding-inline: 2rem; }
  .grid-0 > .row > :first-child > .stat-cell { padding-inline-start: 0; }
  .stat-value { font-size: 4rem; }
  .split-title { font-size: 3rem; }
  .split-title-upper { font-size: 3.3125rem; }

  /* Actions and projects */
  .group-title { font-size: 2.375rem; }
  .action-hero-title { font-size: 6rem; }
  .action-hero-lead { font-size: 1.8125rem; }
  .cta-title { font-size: 2.6875rem; }
  .project-item { padding-inline: 1.75rem; }
  .project-name { font-size: 2.25rem; }
  .join-box { padding-inline: 2rem; }
  .join-box-title { font-size: 1.75rem; }

  /* Tadamon */
  .project-title { font-size: 4.875rem; }
  .result-value { font-size: 3.5rem; }

  /* Impact and platform */
  .indicator-value { font-size: 4rem; }
  .block-title { font-size: 2.75rem; }
  .story-quote { font-size: 2.25rem; }
  .market-title { font-size: 2.625rem; }

  /* News and article */
  .newsletter-title { font-size: 2.6875rem; }
  .featured-title { font-size: 2.5625rem; }
  .featured-body { padding: 2.75rem; }
  .article-fact-top { height: 100%; margin-bottom: 0; }
  .article-title { font-size: 4.125rem; }
  .article-chapo { font-size: 1.375rem; }
  .article-part-title { font-size: 1.9375rem; }
  .article-quote-text { font-size: 1.75rem; }

  /* Contact, legal, 404 */
  .error-number { font-size: 15rem; }
  .error-title { font-size: 3rem; }
}

@media (min-width: 1400px) {
  /* Tokens */
  :root {
    --container-w: 1320px;
  }

  /* Shared parts */
  .page-hero-title { font-size: 6rem; }
  .page-hero-title-tall { font-size: 6.125rem; }
  .page-hero-title-legal { font-size: 5.5rem; }
  .band-title { font-size: 3.5rem; }

  /* Home */
  .home-hero-title { font-size: 7.75rem; }

  /* Actions and projects */
  .action-hero-title { font-size: 7rem; }
  .action-hero-lead { font-size: 1.875rem; }

  /* Tadamon */
  .project-title { font-size: 5.6875rem; }

  /* News and article */
  .article-title { font-size: 4.5rem; }

  /* Contact, legal, 404 */
  .error-number { font-size: 16.25rem; }
  .error-title { font-size: 3.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .action-card, .news-card, .lost-card, .project-item, .read-bar span, .navbar-toggler span { transition: none; }
}

@media print {
  @page { size: A4; margin: 16mm 16mm 18mm; }
  html, body { background: #fff !important; }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .navbar-expand-xl, .site-footer, .bg-earth, .print-hide, .modal { display: none !important; }
  .navbar-expand-xl ~ main { padding-top: 0; }
  .print-only { display: flex !important; }
  .article-title { font-size: 34pt !important; }
  .article-main { max-width: none; }
  .article-main p, .article-main li { font-size: 11.5pt !important; line-height: 1.55 !important; }
}

/* =========================================================================
   WordPress
   ========================================================================= */

/* Admin bar offset */
body.admin-bar [data-header] { top: 32px !important; }

@media screen and (max-width: 782px) {
  body.admin-bar [data-header] { top: 46px !important; }
}

@media screen and (max-width: 600px) {
  body.admin-bar #wpadminbar { position: fixed; }
}

@media (max-width: 1199.98px) {
  body.admin-bar .navbar-collapse { max-height: calc(100vh - var(--header-height) - 46px); }
}

/* Real links that replace the filter buttons of the HTML (D7, L18) */
a.filter { display: inline-block; }
a.filter:hover { color: var(--forest-900); }
a.filter.is-active:hover { color: var(--sand-100); }

/* A photo takes the place of the placeholder */
.placeholder-img.has-photo { overflow: hidden; background: none; }
.placeholder-img.has-photo > img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* Photo of the home hero, chosen in its block */
.home-hero.has-photo { background-size: cover; background-position: center; }
.home-hero.has-photo::after { content: none; }

/* Spacing utilities that a longer list may need; theme.css is purged */
@media (min-width: 576px) { .mb-sm-7 { margin-bottom: 0.875rem !important; } }
@media (min-width: 768px) { .mb-md-7 { margin-bottom: 0.875rem !important; } }
@media (min-width: 992px) { .mb-lg-7 { margin-bottom: 0.875rem !important; } }
@media (min-width: 1200px) { .mb-xl-7 { margin-bottom: 0.875rem !important; } }
