/* ====================== RESET SIMPLE ====================== */
*, *::before, *::after { box-sizing: border-box; }

html, body { height: 100%; }

body { margin: 0; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; line-height: 1.6; color: #222; background-color: #fff; }

ul, ol { list-style: none; margin: 0; padding: 0; }

address { font-style: normal; margin: 0; }

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

button { all: unset; display: inline-block; cursor: pointer; font: inherit; color: inherit; }


/* ====================== FONTS ====================== */
@font-face {
  font-family: "Roboto Flex";
  src: url("/assets-20260811a/fonts/Roboto_Flex/RobotoFlex-Latin-French.woff2") format("woff2");
  font-weight: 100 1000;
  font-stretch: 25% 151%;
  font-style: oblique -10deg 0deg;
  font-display: swap;
}

@font-face {
  font-family: "Source Serif 4";
  src: url("/assets-20260811a/fonts/Source_Serif_4/SourceSerif4-Latin-French-W480.woff2") format("woff2");
  font-weight: 480;
  font-style: normal;
  font-display: swap;
}


/* ====================== VARIABLES ====================== */
:root {
  --color-primary: #28695c; --color-text: #172524; --color-background: #fbfaf6;
  --color-background-container: #eef2ed; --color-background-button: #28695c;

  --font-main: "Roboto Flex", Arial, sans-serif; --font-heading: "Roboto Flex", Arial, sans-serif; --font-display: "Source Serif 4", Georgia, serif;

  --spacing-sm: 0.5rem; --spacing-md: 1rem; --spacing-lg: 2rem; --spacing-xl: 2.2rem;
  --radius: 2px; --px: 0.0625em;

  --shadow-soft: none;

  --transition-duration: 0.3s; --transition-ease: ease; --transition-base: var(--transition-duration) var(--transition-ease);
  --hover-scale: 1.02;
}


/* ====================== ACCESSIBILITÉ ====================== */
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.visually-hidden:focus, .visually-hidden:active { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; }


/* ====================== LAYOUT GLOBAL ====================== */
body {
  font-family: var(--font-main); background-color: var(--color-background); color: var(--color-text);
  max-width: calc(1200 * var(--px)); margin: 0 auto;
  min-height: 100vh; display: flex; flex-direction: column;
}

.page { overflow: visible; position: relative; flex: 1; display: flex; flex-direction: column; }

main {
  display: flex; flex-direction: column; align-items: start;
  gap: calc(20 * var(--px)); padding: calc(20 * var(--px)) 0;
  flex: 1;
}


/* ====================== TYPO ====================== */
h1, h2, h3 { font-family: var(--font-heading); margin: 0; }

h1 { font-size: calc(24 * var(--px)); font-weight: 700; text-align: center; }

main h2 { font-size: calc(20 * var(--px)); margin-bottom: calc(5 * var(--px)); text-align: center; }

main section:first-child h2 { font-size: calc(16 * var(--px)); font-weight: 600; opacity: 0.8; }

main section:first-child * { line-height: calc(22 * var(--px)); }

main section h1, main section h2, main section h3 { text-align: center; }

.references h2 { text-align: left; padding-left: 1rem;}

h1, h2, h3 { text-wrap: balance; }

p { text-wrap: pretty; }

.mtSpacing { margin-top: 1.5rem;}

.icone { align-items: center;}

p > br { display: block; margin-bottom: .5rem;}


/* ====================== UTILITAIRES ====================== */
.backdropFilter { background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-bottom: 1px solid rgba(0, 0, 0, 0.1); }

.containerButton { display: flex; justify-content: center; }

button, .button { font-weight: 500; background-color: var(--color-background-button); color: var(--color-background); padding: 0.5rem; border-radius: var(--radius); margin: 1rem 0.5rem; }

.button { transition: transform 0.25s ease, box-shadow 0.25s ease; }

.button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12); }

.card { box-shadow: var(--shadow-soft); }

.card div.title { margin-top: 1rem;}

.card div.title h2 { font-size: 1rem; line-height: 1.4rem;}

.card div.content p {margin-block: 0;}

a { color: inherit; text-decoration: none; }

a:is(:hover, :active, :focus, :visited) { text-decoration: none; }

.subTitle { margin-top: .8rem;}


/* ====================== HEADER (sticky robuste) ====================== */
header { border-bottom: 1px solid #ddd; background: var(--color-background); position: sticky; top: 0; z-index: 10; }

header nav { display: flex; flex-direction: column; }

header nav div { padding: var(--spacing-sm); display: flex; align-items: baseline; justify-content: space-between; }

header .logo img { width: calc(200 * var(--px)); }

header button { width: calc(60 * var(--px)); background-color: var(--color-background-container); }

body.navClose header nav .links { display: none; }

body.navOpen { overflow: hidden; }

body.navOpen header nav .links { height: calc(100vh - 107px); width: 100vw; display: flex; flex-direction: column; gap: var(--spacing-md); padding: var(--spacing-md); background-color: var(--color-background-container); }

header { overflow: hidden;}

/* ====================== SECTIONS / CARTES ====================== */
main section { background-color: var(--color-background-container); padding: calc(5 * var(--px)); border-radius: var(--radius); overflow: hidden; width: 100%; }

.produitsPhares, .solutions { display: grid; gap: 1rem; }

.produitsPhares > div, .solutions > a, .solutions ul, .produitPhare { border-radius: var(--radius); background-color: var(--color-background); display: grid; }

.produitsPhares > div, .produitPhare { grid-template-columns: repeat(2, 1fr); }

.produitsPhares div, .solutions > a, .produitPhare { padding: 1rem; }

.produitsPhares h3, .presentation h2, .presentation h3 { text-align: left; }

.produitsPhares p { font-size: calc(14 * var(--px)); opacity: 0.8; }

.produitsPhares em { font-weight: 700; font-style: normal; }

.solutions > a, .solutions > a:hover { text-decoration: none; }

.solutions ul { background-color: var(--color-background-container); padding: 1rem; flex-grow: 1; }

.solutions .list { display: flex; flex-direction: column; background-color: var(--color-background); }

.solutions li { display: grid; grid-template-columns: calc(32 * var(--px)) 1fr; align-items: center; gap: 1rem; }

.solutions h3, .references h2 { margin: 0.8rem 0; }

.domaine li { background-color: var(--color-background); padding: var(--spacing-md); border-radius: var(--radius);}
.domaine ul { display: grid; gap: var(--spacing-md);}
.domaine .imageWrapper { height: 200px;}

.domaine img, #contact img { object-fit: cover; object-position: center;; width: 100%; height: 100%;}
/* ====================== REFERENCES ====================== */
.references ul { display: grid; gap: 1rem; grid-template-columns: repeat(2, 1fr); align-items: center; justify-items: center; }

.references li img, .presentation img { width: 100px; }


/* ====================== ILLUSTRATION GRID ====================== */
.illustration { background-image: url(/assets-20260811a/images/ondes.svg); background-repeat: no-repeat; background-position: center; background-size: contain; width: calc(240 * var(--px)); margin: 0 auto; display: grid; grid-template-columns: repeat(11, 1fr); grid-template-rows: repeat(11, 1fr); }

.grid-pos-9-8 { grid-row: 9 / span 3; grid-column: 8 / span 3; width: 100%; }

.grid-pos-6-2 { grid-row: 6 / span 5; grid-column: 2 / span 5; width: 100%; }

.grid-pos-4-7 { grid-row: 4 / span 4; grid-column: 7 / span 4; width: 100%; }

.grid-pos-2-1 { grid-row: 2 / span 4; grid-column: 1 / span 4; width: 100%; }

.grid-pos-5 { grid-row: auto / span 3; grid-column: 5 / span 3; width: 100%; }


/* ====================== PRESENTATION ====================== */
.presentation .text { padding: 1rem; }

.presentation em { font-size: 1.25em; font-weight: 700; font-style: normal; }

.presentation h3 { font-size: 1.25em; }


/* ====================== .footerContainer ====================== */
.footerContainer {
  padding: calc(40 * var(--px)); background: var(--color-background-container); border-top: 1px solid #ddd;
  font-size: calc(14 * var(--px)); line-height: calc(20 * var(--px));
  display: grid; gap: 0.5rem;
}

.footerContainer .logo { width: calc(73 * var(--px)); }

.footerContainer h2 { opacity: 0.6; margin-bottom: 0.5rem; font-size: calc(16 * var(--px)); font-weight: 600; text-align: left; }

.footerContainer h2, .footerContainer h3 { text-align: left; }

.footerContainer .icone img { width: calc(23 * var(--px)); }

a.icone { display: flex; gap: calc(5 * var(--px)); width: 100%; padding: 0.5rem 0; }

.iconTel { margin-right: calc(5 * var(--px)); }

.footerContainer section:last-child { text-align: center; }


/* ====================== PAGES ====================== */
.page404 { display: flex; flex-direction: column; justify-content: center; }

.page404 h1, .page404 h2 { font-size: 30px; text-align: left; }

.page404 .containerButton { justify-content: left; }

.introBase h1z{ text-align: start; } /* à retirer je pense*/

.introBase > div:first-child, .card .title { display: flex; align-items: center; gap: 0.5rem; width: 100%; }

.pageBase .logo { width: 50px; }

.pageBase section { padding: 0.8rem 1rem; }

.containerCards { display: grid; gap: var(--spacing-md); justify-items: center;}

.pageBase * { text-align: start; }

.card { background-color: var(--color-background); padding: var(--spacing-md); border-radius: var(--radius); width: 100%;}

.card .logo { width: 40px; }

.card .title { justify-content: space-between; }

.promotion > div:first-child { width: 280px; margin: 0 auto; }

.utilisation .card .imageWrapper {
  height: 200px;
  overflow: hidden;
}


.usages .card h3, .fonctionnalites h3 {
    font-size: 1rem;
    margin-bottom: var(--spacing-sm);
    margin-top: var(--spacing-lg);
}

.usages em, #aPropos em {
    font-weight: 700;
    font-style: normal;
}

.usages li {
    display: grid;
    grid-template-columns: 1fr 100px;
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
}

.usages .imageWrapper {
    overflow: hidden;
    border-radius: var(--radius);
}

.usages .card {
    max-width: 500px;
}

.footerContainer section + section {
  margin-top: var(--spacing-md);
}

.utilisation .card img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}


.fonctionnalites .mediaWrapper, .fonctionnalites .videoWrapper {
  width: 100%;
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
}

.fonctionnalites .videoWrapper video {
  width: 100%;
  height: auto;
  display: block;
}

.fonctionnalites .heightPlus {
  height: 300px;
  overflow: hidden;
}

.fonctionnalites > img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

#contact h2 { color: #000; opacity: 1;}

#contact .liens ul { margin-top: var(--spacing-md); display: grid; gap: var(--spacing-md)}

#contact .button { margin: 0;}

#contact .icone { width: 60px;}

#contact .imageWrapper { display: none;}

#aPropos .introBase h2 { font-size: 20px; opacity: 1; margin: 0;}

#aPropos .introBase p {  margin: 0;}

#aPropos .introBase ul { display: grid; gap: var(--spacing-sm);}
#aPropos .introBase li { padding: var(--spacing-md);}

#aPropos>section.double{display:grid;grid-template-columns: 3fr 2fr; min-height: 50vh; height: 200px; gap: var(--spacing-lg); align-items: center;}

#aPropos>section.double>div:first-child{
  position: relative;
  order: 2;
  height: 100%;
  width: 100%;
}

#aPropos > section.double > div:nth-child(2){order: 1; padding: var(--spacing-md);}

  #aPropos > section.double:nth-child(3) > div:first-child {
    grid-column: 1;
    align-items: normal;
  }

  #aPropos>section.double:nth-child(3){display:grid;grid-template-columns: 2fr 3fr;}

section.double:nth-child(3) > div:nth-child(1) > div:nth-child(2) img{
  position: absolute;
  top: -100%;
  right: -200%;
 }

  #aPropos > section.double:nth-child(3) > div:last-child {
    grid-column: 2;
  }

#aPropos>section.double .imageWrapper{width: 100%; position: absolute; left: 50%; top:50%;transform: translate(-50%,-50%);}
#aPropos>section.double .videoWrapper{width: 216px; height: 280px; position: absolute; z-index: 1; top: 25%;left: -25%;}
#aPropos>section.double:nth-child(3) .videoWrapper{top: 25%;left: -25%;}
#aPropos video{ object-fit: cover; object-position: center; width: 100%; height: 100%;}
#aPropos>section.double .imageWrapper img{width: 100%;object-position: 50% 10%;}

.second {
  display: grid; grid-template-columns: 2fr 3fr; gap: var(--spacing-lg);
}
.second .text{padding: var(--spacing-xl);}

.second >div:first-child{position: relative; left: -30%;}
.second .imageWrapper {
  position: absolute;
  inset: 0; /* top:0; right:0; bottom:0; left:0; */
}

.second .imageWrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.second .imageWrapper:nth-child(2){
  height: 280px;width: 216px;
  left: 90%;
  top: 25%;
  border-radius:var(--radius);
}
.second .imageWrapper:first-child{
  scale: 1.3;
  left: -40%;
}
.second .imageWrapper:nth-child(2) img{object-fit: contain;}

#reference .containerCards{padding: var(--spacing-lg) 0;}
#reference .containerCards h2 { font-size: 16px;}
#reference .containerCards p { font-size: 14px;}
#reference .card { padding: var(--spacing-sm);}
#reference .card .imageWrapper { width: 100%; height: 160px; margin-bottom: var(--spacing-sm);}
#reference .imageWrapper > img {height: 100%; width: 100%; object-fit: contain; object-position: center;}

#index .references ul li { width: 80px; height: 80px; display: flex; align-items: center;}
ul.applicationList {font-size: 14px;}

#reference .card { background-color: #67656513;}

#reference .imageWrapper { background-color: #fff;}

#pageContact #intro { background-color: transparent;}

#pageContact #intro p { font-weight: 700;}

#pageContact #intro h3 { font-weight: 500; font-size: 1em;}

#pageContact #contact .imageWrapper img { object-fit: contain; width: 100%; height: 100%;}

#pageContact #contact .imageWrapper { width: 200px; height: 200px; display: none;}

#pageContact #contact .container {display: grid; gap: 1rem; padding: 1em;}
.contentText { align-self: center;}

#pageContact #contact .container p { font-weight: 600;  margin: 0;}

#pageContact #contact .container li p { font-size: .9em; font-weight: 500;}

#pageContact .contactJf ul, #pageContact .address ul { display: grid; gap: 1rem;}

#pageContact .tel { font-size: 1.2em; font-weight: 600;}

/* ====================== MD ≥ 768px ====================== */
@media (min-width: 768px) {
  header nav button { display: none; }

  header nav { padding: .6rem;}

  .containerMainMenu { display: flex; position: absolute; top: 80%; left: 70%; transform: translate(-50%, -50%); justify-content: center; }

  #mainMenu { display: flex; gap: var(--spacing-md); width: 35rem;}

  header nav { flex-direction: row; align-items: baseline; }

  #mainMenu a { font-size: clamp(0.875rem, 0.9vw, 1.375rem); display: block; padding: 0.5rem; border-radius: var(--radius); margin: 1rem 0.5rem; transition: background-color 0.2s ease, transform 0.15s ease, box-shadow 0.2s ease; }

  #mainMenu a:hover { background-color: #dedede; transform: translateY(-2px); }

  #mainMenu a:active { transform: translateY(0); box-shadow: var(--shadow-soft); }

  header .logo img { width: calc(220 * var(--px)); }

  .footerContainer { grid-template-columns: repeat(2, 1fr); }

  .footerContainer section:last-child { grid-column: span 2; }

  .footerContainer .logo { width: calc(120 * var(--px)); }

  main section { padding: calc(8 * var(--px)); width: 100%; }

  .produitsPhares, .solutions { grid-template-columns: repeat(2, 1fr); }
  #reference .containerCards{grid-template-columns: repeat(2, 1fr);}

  .produitsPhares > a { display: grid;}

  .solutions > a { grid-template-rows: 200px 500px auto; }

  .references ul { grid-template-columns: repeat(3, 1fr); }

  .references li img { width: 120px; }

  .presentation { display: grid; grid-template-columns: repeat(2, 1fr); gap: .5em; }

  /*.presentation .text { padding: 2rem; }*/

  .presentation > :nth-child(1) { grid-column: 2; grid-row: 1; }

  .presentation > :nth-child(2) { grid-column: 1; grid-row: 1; }

  .presentation > :nth-child(3) { grid-column: 1 / -1; grid-row: 2; }

  .illustration { width: 330px; aspect-ratio: 1 / 1; align-self: center; }

  .containerCards { grid-template-columns: repeat(3, 1fr); }

  .plateformes .containerCards { grid-template-columns: repeat(1, 1fr); }

    .utilisation .containerCards { grid-template-columns: repeat(2, 1fr); }

  .promotion { display: grid; grid-template-columns: 2fr 1fr; align-items: center; }

  .promotion > :nth-child(1) { grid-column: 2; grid-row: 1; }

  .promotion > :nth-child(2) { grid-column: 1; grid-row: 1; }

  .promotion > :nth-child(3) { grid-row: 2; grid-column: span 2; }

  .plateformes .card a { display: grid; grid-template-columns: 300px 1fr; align-items: center; gap: var(--spacing-sm); }

  .plateformes .card { transition: transform var(--transition-base); }

  .plateformes .card:hover { transform: scale(var(--hover-scale)); }

  .plateformes { overflow: visible; }

  .usages .containerCards {
    grid-template-columns: repeat(2, 1fr);
  }

  .fonctionnalites li { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--spacing-xl); padding: var(--spacing-xl); justify-items: center;}

  .fonctionnalites li:nth-child(even) > *:first-child {
  order: 2;
}

.fonctionnalites li:nth-child(even) > *:last-child {
  order: 1;
}

.fonctionnalites .mediaWrapper { max-width: 300px;}

.pageBase .intro { display: grid; align-items: end; grid-template-columns: 1fr auto;}

.domaine li { display: grid; grid-template-columns: 300px 1fr; gap: var(--spacing-md);}
.domaine .imageWrapper { height: 100px;}

#contact > div:nth-child(2){ display: grid; grid-template-columns: repeat(3, 1fr);}
#contact .imageWrapper { display: block; width: 80%; height: 100%}

.item-1 {
  order: 2;
}

.item-2 {
  order: 1;
}

.item-3 {
  order: 3;
}

#aPropos .introBase ul { grid-template-columns: repeat(2, 1fr);}

#pageContact .container {grid-template-areas: "p p" "ad jf" "ad jf";}

#pageContact .contactJf { grid-area: jf; align-self: center;}
#pageContact #contact .container > p { grid-area: p;}
#pageContact .address { grid-area: ad;}
}

/*#aPropos .medias { display: none;}*/



/* ====================== LG ≥ 1024px ====================== */
@media (min-width: 1024px) {
  #mainMenu a { font-size: 1.375rem;}
  #mainMenu {width: 50rem;}
  .containerMainMenu { left: 55%;}

  .footerContainer { grid-template-columns: repeat(4, 1fr); }

  .footerContainer section:last-child { grid-column: span 4; }

  h1 { font-size: calc(28 * var(--px)); font-weight: 700; }

  main h2 { font-size: calc(24 * var(--px)); }

  h2 { font-size: calc(23 * var(--px)); font-weight: 600; }

  .references ul { grid-template-columns: repeat(9, 1fr); gap: 2rem; padding: 0 0.5rem; }



  .references .containerButton, .presentation .containerButton { justify-content: end; }

  .presentation { grid-template-columns: 2fr 1fr; }
  .utilisation .containerCards { grid-template-columns: repeat(4, 1fr); }
  #aPropos .introBase ul { grid-template-columns: repeat(4, 1fr);}
  #reference .containerCards{grid-template-columns: repeat(4, 1fr);}

  ul.applicationList {grid-template-columns: repeat(2, 1fr);}

  .solutions > a {
    grid-template-rows: 200px 300px auto;
  }

  #infoBulle, #scenarioAjustable { height: auto; width: 32rem; max-width: fit-content;}

  #pageContact .container {grid-template-areas: "p p im" "ad jf im" "ad jf im";}

  #pageContact #contact .imageWrapper { display: block; grid-area: im; height: 100%; width: 100%;}

  .footerContainer { max-width: 1100px; margin-inline:  auto;}

}


/* ====================== XL ≥ 1280px ====================== */
@media (min-width: 1280px) {
  #mainMenu { gap: var(--spacing-xl); }
}


.footerContainer h2 { font-family: var(--font-heading);}

.footerContainer li { margin-top: .5em;}

footer { width: 100vw; position: relative; transform: translateX(-50%); left: 50%; background-color: #f5f5f5;}

/* ========== REPRISE INSTITUTIONNELLE MINIMALE — 26 JUILLET 2026 ========== */
:root {
  --ink-2026: #172524;
  --muted-2026: #5d6b68;
  --paper-2026: #fbfaf6;
  --soft-2026: #f1f3ef;
  --line-2026: #d6ded8;
  --green-2026: #28695c;
  --green-dark-2026: #1f554b;
  --blue-2026: #315e7e;
  --ochre-2026: #c8893d;
  --ochre-text-2026: #996123;
  --radius-2026: 2px;
}

html {
  background: var(--paper-2026);
  scroll-behavior: smooth;
}

[hidden] {
  display: none !important;
}

body {
  max-width: none;
  background: var(--paper-2026);
  color: var(--ink-2026);
  font-family: var(--font-main);
  font-weight: 400;
  font-stretch: 96%;
  font-variation-settings: "opsz" 14, "GRAD" 0;
}

h1,
h2,
h3,
button,
.primaryCta,
.secondaryCta {
  font-family: var(--font-heading);
}

a:focus-visible,
button:focus-visible {
  outline: 3px solid var(--ochre-2026);
  outline-offset: 4px;
}

.skipLink {
  position: fixed;
  z-index: 1000;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.7rem 1rem;
  border: 1px solid var(--green-2026);
  background: var(--paper-2026);
  color: var(--green-2026);
  font-weight: 650;
  transform: translateY(-200%);
}

.skipLink:focus {
  transform: translateY(0);
}

.siteHeader {
  overflow: visible;
  border-bottom: 1px solid var(--line-2026);
  background: rgba(251, 250, 246, 0.97);
  backdrop-filter: blur(12px);
}

.siteHeader nav {
  width: min(100%, 1180px);
  min-height: 4.75rem;
  margin: 0 auto;
}

.siteHeader nav > div:first-child {
  align-items: center;
}

.siteHeader .logo img {
  width: 8.75rem;
}

.siteHeader button {
  width: 2.75rem;
  min-height: 2.75rem;
  margin: 0;
  padding: 0.35rem;
  background: transparent;
}

.siteHeader #mainMenu a {
  border-radius: 0;
  color: var(--ink-2026);
  font-weight: 500;
  letter-spacing: 0.01em;
  transition: color 140ms ease, border-color 140ms ease;
}

.siteHeader #mainMenu a:hover {
  background: transparent;
  color: var(--green-2026);
  transform: none;
}

.siteHeader #mainMenu a[aria-current="page"] {
  color: var(--green-2026);
  text-decoration: underline;
  text-decoration-color: var(--green-2026);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.45rem;
}

.institutional-page {
  width: 100%;
  gap: 0;
  padding: 0 1.25rem;
  align-items: stretch;
}

.institutional-page section {
  width: min(100%, 1120px);
  margin: 0 auto;
  padding: clamp(3.5rem, 7vw, 6.5rem) 0;
  overflow: visible;
  border: 0;
  border-top: 1px solid var(--line-2026);
  border-radius: 0;
  background: transparent;
}

.institutional-page section:first-child {
  border-top: 0;
}

.institutional-page .altSection {
  background: transparent;
}

.institutional-page h1,
.institutional-page h2,
.institutional-page h3,
.institutional-page p {
  text-align: left;
}

.institutional-page h1,
.institutional-page section:first-child h1 {
  max-width: 18ch;
  color: var(--ink-2026);
  font-family: var(--font-display);
  font-size: clamp(2.65rem, 5.25vw, 4.55rem);
  font-weight: 480;
  font-stretch: normal;
  font-variation-settings: normal;
  line-height: 1.01;
  letter-spacing: -0.027em;
  font-optical-sizing: auto;
  text-wrap: balance;
}

.institutional-page h2,
.institutional-page section:first-child h2 {
  max-width: 30ch;
  margin: 0;
  color: var(--ink-2026);
  font-family: var(--font-heading);
  font-size: clamp(1.85rem, 3.3vw, 2.9rem);
  font-weight: 520;
  font-stretch: 102%;
  font-variation-settings: "opsz" 42, "wdth" 102, "GRAD" 5;
  line-height: 1.11;
  letter-spacing: -0.012em;
  opacity: 1;
}

.institutional-page h3 {
  color: var(--ink-2026);
  font-size: clamp(1.2rem, 2vw, 1.55rem);
  font-weight: 560;
  font-stretch: 98%;
  font-variation-settings: "opsz" 24, "wdth" 98, "GRAD" 5;
  line-height: 1.22;
  letter-spacing: -0.01em;
}

.institutional-page p,
.institutional-page dd,
.institutional-page span {
  color: var(--muted-2026);
}

.institutional-page .eyebrow {
  margin: 0 0 1rem;
  color: var(--green-2026);
  font-size: 0.76rem;
  font-weight: 650;
  letter-spacing: 0.12em;
  line-height: 1.25;
  text-transform: uppercase;
}

.institutional-page .lead {
  max-width: 65ch;
  margin: 1.5rem 0 0;
  color: #43524f;
  font-size: clamp(1.08rem, 1.9vw, 1.32rem);
  line-height: 1.55;
}

.sectionHeading {
  max-width: 48rem;
  margin-bottom: clamp(2.5rem, 5vw, 4rem);
}

.sectionHeading > p:last-child {
  max-width: 64ch;
  margin: 1.25rem 0 0;
  font-size: 1.05rem;
}

.hero2026 {
  min-height: min(720px, calc(100vh - 4.75rem));
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(16rem, 0.6fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
  background: var(--paper-2026) !important;
}

.heroCopy {
  position: relative;
  z-index: 1;
}

.heroFacts {
  margin: 0;
  border-top: 1px solid var(--line-2026);
}

.heroFacts > div {
  display: grid;
  grid-template-columns: 6.5rem minmax(0, 1fr);
  gap: 1rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.heroFacts dt,
.recordFacts dt,
.roleList dt {
  color: var(--green-2026);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.heroFacts dd,
.recordFacts dd,
.roleList dd {
  margin: 0;
}

.pageHero2026 {
  min-height: 28rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--paper-2026) !important;
}

.pageHero2026.compactHero {
  min-height: 22rem;
}

.ctaGroup,
.cardLinks,
.recordLinks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.5rem;
  align-items: center;
  margin-top: 2rem;
}

.ctaGroup.centered {
  justify-content: flex-start;
}

.primaryCta,
.secondaryCta {
  display: inline-flex;
  min-height: 2.85rem;
  align-items: center;
  justify-content: center;
  padding: 0.7rem 1rem;
  border-radius: 2px;
  font-weight: 600;
  line-height: 1.2;
  touch-action: manipulation;
  transition: background-color 140ms ease, color 140ms ease;
}

.primaryCta {
  background: var(--green-2026);
  color: #fff;
}

.secondaryCta {
  border: 1px solid var(--green-2026);
  color: var(--green-2026);
}

.primaryCta:hover {
  background: var(--green-dark-2026);
  color: #fff;
  transform: none;
}

.secondaryCta:hover {
  background: var(--green-2026);
  color: #fff;
  transform: none;
}

.textLink,
.sectionLink {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--green-2026);
  font-weight: 640;
  text-decoration: underline;
  text-decoration-color: rgba(40, 105, 92, 0.4);
  text-underline-offset: 0.25em;
}

.textLink::after,
.sectionLink::after {
  content: " →";
}

.caseType {
  display: block;
  margin: 0 0 0.9rem;
  padding: 0;
  border-radius: 0;
  background: transparent;
  color: var(--green-2026) !important;
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.initiativeIndex {
  border-top: 1px solid var(--line-2026);
}

.initiativeBrief {
  display: grid;
  grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: center;
  padding: clamp(2rem, 5vw, 4rem) 0;
  border-bottom: 1px solid var(--line-2026);
}

.initiativeBrief figure,
.initiativeHero figure,
.recordFigure {
  margin: 0;
}

.initiativeBrief picture,
.initiativeHero picture {
  display: block;
}

.initiativeBrief img,
.initiativeHero img,
.recordFigure img {
  width: 100%;
  border: 1px solid var(--line-2026);
  border-radius: 0;
  object-fit: cover;
  box-shadow: none;
}

.initiativeBrief img {
  aspect-ratio: 16 / 10;
}

.initiativeBrief:first-child img,
.climaeHero img {
  object-position: center;
}

.initiativeBrief figcaption,
.initiativeHero figcaption,
.recordFigure figcaption {
  margin-top: 0.65rem;
  color: var(--muted-2026);
  font-size: 0.8rem;
}

.initiativeBrief h3 {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
}

.initiativeBrief div > p:not(.caseType) {
  max-width: 57ch;
}

.proofSection {
  display: grid;
  grid-template-columns: minmax(16rem, 0.65fr) minmax(0, 1.35fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.proofSection .sectionHeading {
  margin-bottom: 0;
}

.proofList {
  border-top: 1px solid var(--line-2026);
}

.proofList article {
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.proofList article > *:last-child {
  margin-bottom: 0;
}

.proofMeta,
.recordDate {
  margin: 0 0 0.65rem;
  color: var(--ochre-text-2026) !important;
  font-size: 0.78rem;
  font-weight: 690;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.proofSection .sectionLink {
  grid-column: 2;
  justify-self: start;
}

.presencePreview {
  display: grid;
  grid-template-columns: 11rem minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 5rem);
  align-items: start;
}

.presenceDate {
  display: flex;
  flex-direction: column;
  padding-top: 0.25rem;
  border-top: 3px solid var(--blue-2026);
}

.presenceDate span {
  color: var(--ink-2026);
  font-size: 4.5rem;
  font-weight: 580;
  letter-spacing: -0.06em;
  line-height: 1;
}

.presenceDate strong {
  margin-top: 0.35rem;
  color: var(--muted-2026);
  font-size: 0.85rem;
  text-transform: uppercase;
}

.presencePreview h2 {
  max-width: none;
}

.commitmentsSection {
  display: grid;
  grid-template-columns: minmax(17rem, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.commitmentsSection .sectionHeading {
  margin-bottom: 0;
}

.commitmentList {
  border-top: 1px solid var(--line-2026);
}

.commitmentList li {
  display: grid;
  grid-template-columns: minmax(9rem, 0.7fr) minmax(0, 1.3fr);
  gap: 1.5rem;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.commitmentList strong {
  color: var(--ink-2026);
}

.contactStrip {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(15rem, 0.6fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}

.contactStrip address {
  padding-left: 1.5rem;
  border-left: 3px solid var(--ochre-2026);
}

.contactStrip address p {
  margin-top: 0;
}

.projectRecord {
  display: grid;
  grid-template-columns: minmax(15rem, 0.55fr) minmax(18rem, 0.75fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: start;
}

.recordHeader p:last-child {
  font-size: 1.08rem;
}

.recordFigure img {
  aspect-ratio: 4 / 3;
}

.recordFacts,
.roleList {
  margin: 0;
  border-top: 1px solid var(--line-2026);
}

.recordFacts > div,
.roleList > div {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 1.25rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.recordLinks {
  grid-column: 2 / -1;
  margin-top: -0.5rem;
}

.pendingNote {
  display: grid;
  grid-template-columns: minmax(16rem, 0.7fr) minmax(0, 1.3fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.pendingNote .sectionHeading {
  margin-bottom: 0;
}

.initiativeHero {
  min-height: 34rem;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, 0.82fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: center;
  background: var(--paper-2026) !important;
}

.initiativeHero figure {
  padding-top: 0.75rem;
  border-top: 3px solid var(--blue-2026);
}

.baladeurHero figure {
  border-top-color: var(--ochre-2026);
}

.initiativeHero img {
  max-height: 29rem;
}

.mediaZoom {
  display: block;
  cursor: zoom-in;
}

.mediaZoom:focus-visible {
  outline: 3px solid var(--ochre-2026);
  outline-offset: 4px;
}

.baladeurHero img {
  aspect-ratio: 16 / 11;
}

.initiativeStatement {
  display: grid;
  grid-template-columns: minmax(16rem, 0.75fr) minmax(0, 1.25fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.initiativeStatement .sectionHeading {
  margin-bottom: 0;
}

.initiativeLinks {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(17rem, 0.75fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}

.initiativeLinks nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1.25rem;
}

.initiativeReferences {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(17rem, 0.75fr);
  gap: clamp(2rem, 7vw, 7rem);
  align-items: end;
}

.initiativeReferences > div p:last-child {
  max-width: 64ch;
}

.timeline2026 {
  max-width: 64rem;
  margin: 0 0 0 auto;
  border-top: 1px solid var(--line-2026);
}

.timeline2026 li {
  display: grid;
  grid-template-columns: 8rem minmax(0, 1fr);
  gap: 2rem;
  padding: 1.4rem 0;
  border-top: 0;
  border-bottom: 1px solid var(--line-2026);
}

.timeline2026 time,
.timeline2026 span {
  color: var(--green-2026);
  font-weight: 680;
}

.timeline2026 h3,
.timeline2026 p {
  margin-top: 0;
}

.referenceGroup {
  display: grid;
  grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1.45fr);
  gap: clamp(2.5rem, 7vw, 7rem);
  align-items: start;
  scroll-margin-top: 5.5rem;
}

.referenceGroupHeader {
  position: sticky;
  top: 6.5rem;
}

.referenceGroupHeader p:last-child {
  max-width: 43ch;
}

.referenceEntries {
  border-top: 1px solid var(--line-2026);
}

.referenceEntry {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--line-2026);
  scroll-margin-top: 5.5rem;
}

.referenceEntry h3 {
  max-width: 32ch;
  margin-bottom: 1.25rem;
}

.referenceFacts {
  margin: 0;
}

.referenceFacts > div {
  display: grid;
  grid-template-columns: 8.5rem minmax(0, 1fr);
  gap: 1.25rem;
  padding: 0.65rem 0;
  border-top: 1px solid rgba(214, 222, 216, 0.7);
}

.referenceFacts dt {
  color: var(--green-2026);
  font-size: 0.74rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.referenceFacts dd {
  margin: 0;
}

.referenceGroupLinks {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.5rem;
  align-items: center;
}

.reasonSection,
.peopleSection {
  display: grid;
  grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.reasonSection .sectionHeading {
  margin-bottom: 0;
}

.prose {
  max-width: 48rem;
  font-size: 1.05rem;
}

.prose p:first-child {
  margin-top: 0;
}

.contactLayout {
  display: grid;
  grid-template-columns: minmax(17rem, 0.8fr) minmax(0, 1.2fr);
  gap: clamp(3rem, 8vw, 8rem);
}

.contactPrimary address {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 2rem 0;
  padding: 1.5rem 0;
  border-top: 1px solid var(--line-2026);
  border-bottom: 1px solid var(--line-2026);
}

.contactEmail {
  color: var(--green-2026);
  font-size: clamp(1.35rem, 3vw, 2rem);
  font-weight: 620;
}

.contactPhone {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  margin-top: 0.4rem;
  color: var(--ink-2026);
  font-size: 1.05rem;
}

.contactPaths,
.entryPoints {
  border-top: 1px solid var(--line-2026);
}

.contactPaths article,
.entryPoints article {
  padding: 1.6rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.contactNote {
  padding-top: 1.5rem !important;
  padding-bottom: 1.5rem !important;
}

.contactNote p {
  margin: 0;
  font-size: 0.9rem;
}

.contactNote a {
  color: var(--green-2026);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.entryPoints {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.entryPoints article {
  padding: 2rem clamp(1.5rem, 4vw, 3.5rem);
}

.entryPoints article:first-child {
  padding-left: 0;
  border-right: 1px solid var(--line-2026);
}

.presenceRecord {
  display: grid;
  grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1.45fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.presenceRecord header {
  position: static;
  overflow: visible;
  border: 0;
  background: transparent;
}

.presenceRecord time {
  display: block;
  margin-bottom: 1.25rem;
  color: var(--ochre-text-2026);
  font-size: 0.82rem;
  font-weight: 690;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.presenceRecordLinks {
  grid-column: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem 1.5rem;
  align-items: center;
  justify-self: start;
}

.presenceIndexSection {
  display: grid;
  grid-template-columns: minmax(16rem, 0.55fr) minmax(0, 1.45fr);
  gap: clamp(2rem, 7vw, 7rem);
}

.presenceIndexSection .sectionHeading {
  margin-bottom: 0;
}

.presenceIndexList {
  border-top: 1px solid var(--line-2026);
}

.presenceIndexEntry {
  padding: 1.75rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.presenceIndexEntry time {
  display: block;
  margin-bottom: 0.75rem;
  color: var(--ochre-text-2026);
  font-size: 0.78rem;
  font-weight: 650;
  text-transform: uppercase;
}

.presenceIndexEntry h3 a:hover {
  color: var(--green-2026);
}

.legalPage .compactHero {
  min-height: 20rem;
}

.legalPage .legalSection {
  padding-top: clamp(2.75rem, 5vw, 4.5rem);
  padding-bottom: clamp(2.75rem, 5vw, 4.5rem);
}

.legalSection {
  display: grid;
  grid-template-columns: minmax(14rem, 0.55fr) minmax(0, 1.45fr);
  gap: clamp(2.5rem, 8vw, 8rem);
  align-items: start;
}

.legalSectionHeader {
  position: static;
  overflow: visible;
  border: 0;
  background: transparent;
}

.legalSectionHeader h2 {
  max-width: 12ch;
}

.legalContent {
  max-width: 48rem;
}

.legalFacts {
  margin: 0;
  border-top: 1px solid var(--line-2026);
}

.legalFacts > div {
  display: grid;
  grid-template-columns: 10.5rem minmax(0, 1fr);
  gap: 1.5rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.legalFacts dt {
  color: var(--green-2026);
  font-size: 0.78rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.legalFacts dd {
  margin: 0;
  color: var(--muted-2026);
}

.legalContent a {
  color: var(--green-2026);
  font-weight: 620;
  text-decoration: underline;
  text-decoration-color: rgba(40, 105, 92, 0.4);
  text-underline-offset: 0.2em;
}

.legalText {
  color: var(--muted-2026);
  font-size: 1.05rem;
  line-height: 1.7;
}

.legalText p {
  max-width: 66ch;
  margin: 0;
}

.legalText p + p {
  margin-top: 1.2rem;
}

.archiveIndex {
  display: grid;
  grid-template-columns: minmax(15rem, 0.62fr) minmax(0, 1.38fr);
  gap: clamp(2.5rem, 8vw, 8rem);
  align-items: start;
}

.archiveIndex .sectionHeading {
  margin-bottom: 0;
}

.archiveList {
  border-top: 1px solid var(--line-2026);
}

.archiveEntry {
  display: grid;
  grid-template-columns: 9rem minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 3rem);
  padding: 2rem 0;
  border-bottom: 1px solid var(--line-2026);
}

.archiveEntry figure {
  margin: 0;
}

.archiveEntry img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border: 1px solid var(--line-2026);
  object-fit: contain;
}

.archiveEntry .archiveMeta {
  margin: 0 0 0.65rem;
  color: var(--ochre-text-2026);
  font-size: 0.75rem;
  font-weight: 650;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.archiveEntry h3 {
  max-width: 34ch;
}

.archiveEntry p:not(.archiveMeta) {
  max-width: 62ch;
}

footer {
  position: relative;
  left: auto;
  width: 100%;
  transform: none;
  border-top: 1px solid var(--line-2026);
  background: var(--paper-2026);
}

.footerContainer {
  width: min(100%, 1180px);
  margin: 0 auto;
  padding: 3.5rem 1.25rem 1.5rem;
  display: grid;
  grid-template-columns: minmax(15rem, 1.5fr) repeat(3, minmax(9rem, 0.7fr));
  gap: 2.5rem;
  border: 0;
  background: transparent;
  color: var(--ink-2026);
  font-size: 0.88rem;
}

.footerContainer section {
  text-align: left;
}

.footerContainer .logo {
  width: 8rem;
}

.footerLead p {
  max-width: 28rem;
}

.footerContainer h2 {
  margin: 0 0 1rem;
  color: var(--muted-2026);
  font-family: var(--font-heading);
  font-size: 0.72rem;
  font-weight: 650;
  letter-spacing: 0.08em;
  opacity: 1;
  text-transform: uppercase;
}

.footerContainer li {
  margin-top: 0.5rem;
}

.footerContainer a:hover {
  color: var(--green-2026);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}

.footerContainer a {
  display: inline-flex;
  min-height: 1.75rem;
  align-items: center;
}

.footerLegal {
  grid-column: 1 / -1 !important;
  padding-top: 1.25rem;
  border-top: 1px solid var(--line-2026);
}

.footerLegal p {
  margin: 0;
  color: var(--muted-2026);
}

@media (min-width: 768px) {
  .siteHeader nav {
    min-height: 4.75rem;
    padding: 0 1.25rem;
    align-items: center;
  }

  .siteHeader nav > div:first-child {
    padding: 0;
  }

  .siteHeader .containerMainMenu {
    position: static;
    display: flex;
    margin-left: auto;
    padding: 0;
    transform: none;
  }

  .siteHeader #mainMenu {
    width: auto;
    display: flex;
    gap: 0.2rem;
  }

  .siteHeader #mainMenu a {
    margin: 0;
    padding: 0.55rem 0.65rem;
    font-size: clamp(0.78rem, 1.05vw, 0.9rem);
    white-space: nowrap;
  }
}

@media (max-width: 900px) {
  .hero2026,
  .initiativeBrief,
  .proofSection,
  .commitmentsSection,
  .contactStrip,
  .projectRecord,
  .pendingNote,
  .initiativeHero,
  .initiativeStatement,
  .initiativeLinks,
  .reasonSection,
  .peopleSection,
  .contactLayout,
  .presenceRecord,
  .presenceIndexSection,
  .referenceGroup,
  .initiativeReferences,
  .legalSection,
  .archiveIndex {
    grid-template-columns: 1fr;
  }

  .hero2026 {
    min-height: auto;
  }

  .proofSection .sectionLink,
  .recordLinks,
  .presenceRecordLinks {
    grid-column: 1;
  }

  .referenceGroupHeader {
    position: static;
  }

  .referenceGroupLinks {
    grid-column: 1;
  }

  .initiativeBrief figure {
    max-width: 42rem;
  }

  .projectRecord .recordFigure {
    max-width: 36rem;
  }

  .contactStrip address {
    padding: 1.5rem 0 0;
    border-top: 3px solid var(--ochre-2026);
    border-left: 0;
  }

  .footerContainer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .siteHeader nav {
    padding: 0.45rem 0.75rem;
  }

  .siteHeader nav > div:first-child {
    width: 100%;
    padding: 0;
  }

  .siteHeader .containerMainMenu {
    position: static;
    display: block;
    padding: 0;
    transform: none;
  }

  body.navClose .siteHeader .containerMainMenu {
    display: none;
  }

  body.navOpen .siteHeader .containerMainMenu {
    display: block;
  }

  body.navOpen .siteHeader nav .links {
    width: 100%;
    height: calc(100vh - 4.75rem);
    gap: 0;
    padding: 1rem 0;
    background: var(--paper-2026);
  }

  body.navOpen .siteHeader #mainMenu a {
    display: block;
    margin: 0;
    min-height: 2.75rem;
    padding: 0.85rem 0.25rem;
    border-bottom: 1px solid var(--line-2026);
    border-radius: 0;
    font-family: var(--font-main);
    font-size: 1.15rem;
  }

  .institutional-page {
    padding: 0 1rem;
  }

  .institutional-page h1,
  .institutional-page section:first-child h1 {
    max-width: 20ch;
    font-size: clamp(2.35rem, 10.5vw, 3.2rem);
    line-height: 1;
  }

  .institutional-page section {
    padding: 3rem 0;
  }

  .pageHero2026,
  .pageHero2026.compactHero {
    min-height: 20rem;
  }

  .heroFacts > div,
  .recordFacts > div,
  .roleList > div,
  .referenceFacts > div,
  .commitmentList li,
  .timeline2026 li {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .presencePreview {
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: 1.5rem;
  }

  .presenceDate span {
    font-size: 3.4rem;
  }

  .entryPoints {
    grid-template-columns: 1fr;
  }

  .entryPoints article {
    padding: 2rem 0;
  }

  .entryPoints article:first-child {
    border-right: 0;
  }

  .legalFacts > div {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }

  .archiveEntry {
    grid-template-columns: 6rem minmax(0, 1fr);
    gap: 1rem;
  }

  .footerContainer {
    padding: 2rem 1rem 1.25rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.5rem 1rem;
  }

  .footerLead,
  .footerLegal {
    grid-column: 1 / -1 !important;
  }

  .footerContainer h2 {
    margin-bottom: 0.65rem;
  }

  .footerContainer li {
    margin-top: 0.35rem;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    transition: none !important;
  }
}
