/* Section statique : aucune dépendance externe. */
.tm-seo,
.tm-seo * {
  box-sizing: border-box;
}

.tm-seo {
  padding: clamp(1.25rem, 4vw, 3rem) 1rem;
  color: #172b3a;
  background: #fff;
  font-size: 1rem;
  line-height: 1.65;
  overflow-wrap: anywhere;
}

.tm-seo__inner {
  max-inline-size: 75ch;
  margin-inline: auto;
}

.tm-seo :is(h1, h2, h3) {
  color: inherit;
  line-height: 1.25;
  scroll-margin-block-start: 6rem;
}

.tm-seo h1 {
  margin-block: 0 1.5rem;
  font-size: clamp(1.8rem, 1.3rem + 2vw, 2.75rem);
}

.tm-seo h2 {
  margin-block: 2rem 1rem;
  font-size: 1.5rem;
}

.tm-seo h3 {
  margin-block: 1.5rem .75rem;
  font-size: 1.2rem;
}

.tm-seo a {
  color: #075985;
  text-decoration: underline;
  text-underline-offset: .2em;
}

.tm-seo .tm-seo__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 48px;
  min-inline-size: 48px;
  max-inline-size: 100%;
  padding: .75rem 1rem;
  color: #fff;
  background: #075985;
  border-radius: .5rem;
  text-align: center;
  font-weight: 700;
}

/* Commandes scolaires : adaptation aux conteneurs existants de TransMemo. */
:is(.tm-search, .schoolview, .jr-search) :is(button, select, input[type="search"],
               input[type="text"], input[type="date"]) {
  box-sizing: border-box;
  min-block-size: 48px;
  min-inline-size: 48px;
  max-inline-size: 100%;
  font: inherit;
  font-size: 1rem;
}

:is(.tm-search, .schoolview, .jr-search) :is(button, select) {
  cursor: pointer;
}

.tm-seo a:focus-visible,
:is(.tm-search, .schoolview, .jr-search) :is(a, button, input, select, textarea):focus-visible {
  outline: 3px solid #075985;
  outline-offset: 3px;
  box-shadow: 0 0 0 3px #fff;
}

/* Utiliser cette classe sur les images éditoriales, hors carte interactive. */
.tm-content-image {
  display: block;
  max-inline-size: 100%;
  block-size: auto;
}

/* Menu mobile de l’accueil. */
.tmx-mobile-menu summary { min-inline-size:48px; min-block-size:48px; justify-content:center; }
.tmx-mobile-menu nav { top:calc(100% + .5rem); }
.tmx-mobile-menu nav a { display:flex; align-items:center; min-block-size:48px; }

.tm-local-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:12px;list-style:none;padding:0}.tm-local-links a{display:block;padding:14px 16px;border:1px solid #dce1e7;border-radius:12px;text-decoration:underline;text-underline-offset:3px}.tm-local-links a:focus-visible{outline:3px solid #a71930;outline-offset:3px}
