/* Paragraph alignment shared by public pages; content stays editable in SPIP. */
.trackoe main#contenu p {
  text-align:justify;
  text-align-last:start;
  hyphens:auto;
  overflow-wrap:break-word;
}
/* Short diagram labels, captions and dates retain their intended alignment. */
.trackoe main#contenu .schema-node-text,
.trackoe main#contenu .interop-hub-card-text p,
.trackoe main#contenu li p,
.trackoe main#contenu blockquote p,
.trackoe main#contenu .news-date,
.trackoe main#contenu .care-panel-action {
  text-align:start;
  hyphens:manual;
}
.trackoe main#contenu .schema-node-title,
.trackoe main#contenu .method-step-text p,
.trackoe main#contenu .client-section-head p,
.trackoe main#contenu .client-motion-note,
.trackoe main#contenu .home-more p,
.trackoe main#contenu .engagement-hero-visual figcaption p {
  text-align:center;
  text-align-last:center;
}
@media(max-width:760px) {
  /* Short lines in compact cards read better without stretched word spacing. */
  .trackoe main#contenu .feature p,
  .trackoe main#contenu .engagement-card p,
  .trackoe main#contenu .care-priority-list p,
  .trackoe main#contenu .interop-flow p {
    text-align:start;
    hyphens:manual;
  }
}

/* Audit 30/09 : pas de coupure de mots en fin de ligne (évite « bâti-ment », « terri-toires »). */
.trackoe main#contenu,
.trackoe main#contenu p,
.trackoe main#contenu .lead,
.trackoe main#contenu .section-intro,
.trackoe main#contenu [class*="-text"],
.trackoe main#contenu [class*="-copy"],
.trackoe main#contenu [class*="-intro"] {
  hyphens:manual;
  -webkit-hyphens:manual;
}
/* Textes courts (cartes, accroches, intros latérales) : alignés à gauche plutôt que justifiés. */
.trackoe main#contenu .lead,
.trackoe main#contenu .lead p,
.trackoe main#contenu .section-intro,
.trackoe main#contenu .section-intro p,
.trackoe main#contenu .method-purpose-copy,
.trackoe main#contenu .method-purpose-copy p,
.trackoe main#contenu .method-objective-text,
.trackoe main#contenu .method-objective-text p,
.trackoe main#contenu [class*="card"] p,
.trackoe main#contenu .module-discovery-copy p,
.trackoe main#contenu .form-intro {
  text-align:start;
  text-align-last:auto;
}
/* Sur mobile, la justification crée des trous entre les mots : alignement à gauche partout. */
@media(max-width:760px) {
  .trackoe main#contenu p,
  .trackoe main#contenu [class*="-text"],
  .trackoe main#contenu [class*="-copy"] {
    text-align:start;
  }
}

/* Bloc « Notre engagement pour les territoires » : titre et texte réunis dans un encadré lisible. */
.trackoe .method-purpose {
  grid-template-columns:minmax(0,320px) minmax(0,1fr);
  gap:48px;
  align-items:start;
  background:#f4f9f8;
  border:0;
  border-left:4px solid #0f6f63;
  border-radius:14px;
  padding:34px 40px;
}
.trackoe .method-purpose h3 { max-width:none; }
.trackoe .method-purpose-copy { max-width:720px; }
.trackoe .method-purpose-copy p:last-child { margin-bottom:0; }
@media(max-width:760px) {
  .trackoe .method-purpose { grid-template-columns:1fr; gap:14px; padding:24px 22px; }
}

/* Retour en haut : le focus posé sur <main> ne doit pas afficher de cadre. */
.trackoe main#contenu:focus { outline:none; }
.trackoe .back-to-top { display:inline-flex; align-items:center; gap:6px; }
.trackoe .back-to-top:hover { color:var(--green); text-decoration:underline; }
.trackoe .main-nav a.button[aria-current=page] { background:var(--navy); box-shadow:none; }

/* Étapes courtes du bloc démo (fiches module) : pas de justification dans les petites cases. */
.trackoe main#contenu .demo-steps p,
.trackoe main#contenu .demo-note,
.trackoe main#contenu .demo-copy > p { text-align:start; }

/* À propos : la grande carte 01 s'aligne en haut comme les cartes 02 et 03. */
.trackoe .bloc-carte { justify-content:flex-start; }
.trackoe main#contenu .feature p,
.trackoe main#contenu .accompaniment-promise,
.trackoe main#contenu .care-priority-intro p,
.trackoe main#contenu .form-privacy,
.trackoe main#contenu .form-privacy a { text-align:start; }

/* Illustrations dans l’espace libre à droite des trois textes Infinitri. */
.infinitri-illustrated-block {
  display:grid;
  grid-template-columns:minmax(0,650px) minmax(110px,1fr);
  align-items:center;
  gap:40px;
  margin:0 0 34px;
}
.infinitri-illustrated-copy { min-width:0; }
.module-story > .infinitri-illustrated-block:not(:first-child) { margin-top:32px; }
.module-story .infinitri-illustrated-copy > :first-child { margin-top:0; }
.module-story .infinitri-illustrated-copy > :last-child { margin-bottom:0; }
.infinitri-illustration {
  display:grid;
  place-items:center;
  justify-self:center;
  width:min(100%,160px);
  aspect-ratio:1;
}
.infinitri-illustration img { width:100%; height:auto; object-fit:contain; }
@media(max-width:760px) {
  .infinitri-illustrated-block { grid-template-columns:minmax(0,1fr); gap:0; }
  .infinitri-illustration { display:none; }
}
