/* Cabinet Hached : compléments au design (composants.css reste identique à la maquette).
   Uniquement des variables de tokens.css, aucune couleur en dur. */
html, body { margin: 0; background: var(--ivoire); }
.ch-body { font-family: var(--font-sans); color: var(--encre); }
.ch-evitement { position: absolute; left: -9999px; top: 0; z-index: 1000; background: var(--blanc); color: var(--petrole); padding: var(--space-3) var(--space-4); }
.ch-evitement:focus { left: var(--space-4); }
.ch-serif { font-family: var(--font-serif); }
.ch-header__logo img { display: block; height: 42px; width: auto; }

/* Rythme des sections reprises de la maquette (styles en ligne extraits). */
.ch-section--serree { padding-bottom: var(--space-8); }
.ch-section--cta { padding-block: var(--space-7); }
.ch-section--corps { padding-top: var(--space-8); }
.ch-section--bandeau { padding-block: var(--space-8); }
.ch-chapo { max-width: 720px; }
.ch-split__texte { display: grid; gap: var(--space-5); min-width: 0; }
.ch-entete-section--faq { margin: 0; }
.ch-entete-ligne { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: var(--space-5); margin-bottom: var(--space-7); }
.ch-entete-ligne .ch-entete-section { margin: 0; }
.ch-bandeau-int { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-6); align-items: center; }
.ch-bandeau-int > div { display: grid; gap: var(--space-3); max-width: 760px; min-width: 0; }
.ch-hero .ch-rappel .ch-surtitre { color: var(--argile); }
.ch-contact__intro { color: var(--texte-inverse-doux); }
.ch-cta__texte .ch-h2 { margin: 0; }
.ch-domaines-liste a { display: flex; justify-content: space-between; align-items: center; }

/* Pied de page : intitulés de colonnes sans balise de titre. */
.ch-footer__titre { font: 600 13px/16px var(--font-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--texte-inverse); margin: 0 0 var(--space-4); }
.ch-footer__marque { display: grid; gap: var(--space-4); align-content: start; }
.ch-footer__marque img { height: 48px; width: auto; }

/* Corps des fiches et articles. */
.ch-page-corps__texte { display: grid; gap: var(--space-6); min-width: 0; }
.ch-prose h3 { font: 500 22px/30px var(--font-serif); margin: var(--space-4) 0 0; }
.ch-prose ul { padding-left: 20px; display: grid; gap: var(--space-2); }
.ch-prose li::marker { color: var(--argile); }
.ch-prose a, .ch-contenu-2col a { color: var(--petrole); text-decoration: underline; text-underline-offset: 3px; }
.ch-prose img, .ch-contenu-2col img { max-width: 100%; height: auto; }
.ch-faq__reponse p { margin: 0 0 var(--space-3); }
.ch-faq__reponse p:last-child { margin-bottom: 0; }
.ch-article__meta { color: var(--encre-douce); font-size: 15px; margin: 0; }
.ch-reponse-courte { font: 400 20px/31px var(--font-serif); border-left: 3px solid var(--argile); padding-left: var(--space-5); margin: 0; }
.ch .ch-encart { margin-top: var(--space-6); }

/* Contact Form 7 aux classes du design. */
.ch-contact__form .wpcf7-form-control-wrap { display: block; }
.ch-contact__form .ch-champ--rgpd { font-size: 14px; line-height: 20px; color: var(--encre-douce); }
.ch-contact__form .ch-champ--rgpd input { width: auto; margin: 0 var(--space-2) 0 0; }
.ch-contact__form .ch-champ--rgpd label { font-weight: 400; display: inline; }
.ch-contact__form .ch-champ--pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ch-contact__form .wpcf7-not-valid-tip { color: var(--erreur); font-size: 14px; margin-top: 4px; display: block; }
.ch-contact__form .wpcf7-not-valid { border-color: var(--erreur); }
.ch-contact__form .wpcf7-response-output { margin: 0; padding: var(--space-3); border-radius: var(--radius-sm); border: 1px solid var(--ligne); }
.ch-contact__form form.sent .wpcf7-response-output { border-color: var(--succes); color: var(--succes); }
.ch-contact__form form.invalid .wpcf7-response-output, .ch-contact__form form.failed .wpcf7-response-output { border-color: var(--erreur); color: var(--erreur); }
.ch-contact__form .wpcf7-spinner { margin-left: var(--space-3); }
.ch-contact .wpcf7 { min-width: 0; }
.ch-contact .wpcf7 > form { display: grid; gap: var(--space-4); }

/* Pagination des actualités. */
.ch .navigation.pagination { margin-top: var(--space-7); }
.ch .nav-links { display: flex; gap: var(--space-3); flex-wrap: wrap; }
.ch .page-numbers { padding: var(--space-2) var(--space-3); border: 1px solid var(--ligne); border-radius: var(--radius-sm); color: var(--petrole); }
.ch .page-numbers.current { background: var(--petrole); color: var(--texte-inverse); }

:focus-visible { outline: 2px solid var(--focus); outline-offset: 2px; }
@media (max-width: 900px) {
	.ch-page-corps__texte { gap: var(--space-5); }
}
/* L'attribut hidden l'emporte toujours sur les display des composants. */
.ch [hidden] { display: none !important; }
.ch-actu__visuel:empty { display: none; }
/* Titres visuels sans balise Hn (bandeaux d'appel, contact, encarts) : même style que les titres. */
.ch p.ch-h2, .ch p.ch-h3, .ch p.ch-display { font-family: var(--font-serif); font-weight: 500; margin: 0; color: inherit; }
.ch-champ--rgpd a { color: var(--petrole); text-decoration: underline; }

/* Revue de presse (Qui sommes-nous > Presse) */
.ch .ch-presse { display: grid; gap: var(--space-5); }
.ch .ch-presse__item { display: grid; grid-template-columns: 143px 1fr; gap: var(--space-5); align-items: start; padding-bottom: var(--space-5); border-bottom: 1px solid var(--ligne); }
.ch .ch-presse__item > :only-child { grid-column: 1 / -1; }
.ch .ch-presse__item img { width: 143px; height: auto; border: 1px solid var(--ligne); background: var(--blanc); }
.ch .ch-presse__texte > * { margin: 0 0 var(--space-2); }
.ch .ch-presse__texte h3 { margin: 0 0 var(--space-2); }
.ch .ch-presse blockquote { margin: var(--space-3) 0; padding-left: var(--space-4); border-left: 3px solid var(--argile); font-style: italic; }
@media (max-width: 560px) { .ch .ch-presse__item { grid-template-columns: 96px 1fr; gap: var(--space-4); } .ch .ch-presse__item img { width: 96px; } }
.ch .ch-presse__visuel { margin: 0; }

/* Points forts suivis de l'introduction sur le même fond : un seul espacement. */
.ch-section--avant-intro { padding-bottom: var(--space-7); }
.ch-section--avant-intro + .ch-section--serree { padding-top: 0; }

/* Maillage avant le pied de page : rubrique puis domaines d'expertise. */
.ch-section--maillage { border-top: 1px solid var(--ligne); padding-block: var(--space-8); }
.ch-maillage { display: grid; gap: var(--space-7); }
.ch-maillage__groupe { display: grid; gap: var(--space-4); }
.ch-maillage__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-3); }
.ch-maillage__grille--n1, .ch-maillage__grille--n2, .ch-maillage__grille--n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ch-maillage__grille--n10 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ch-maillage__lien { display: grid; grid-template-columns: 1fr auto; column-gap: var(--space-3); align-items: center; padding: var(--space-4) var(--space-5); background: var(--blanc); border: 1px solid var(--ligne); border-radius: var(--radius-md); text-decoration: none; color: var(--encre); min-width: 0; }
.ch-maillage__lien:hover { border-color: var(--petrole); color: var(--petrole); }
.ch-maillage__titre { font: 500 18px/24px var(--font-serif); grid-column: 1; }
.ch-maillage__accroche { font-size: 14px; line-height: 20px; color: var(--encre-douce); grid-column: 1; margin-top: var(--space-1); }
.ch-maillage__lien svg.i { color: var(--petrole); grid-column: 2; grid-row: 1 / span 2; }
.ch-maillage__grille--n10 .ch-maillage__lien { grid-template-columns: 1fr; padding: var(--space-4); }
.ch-maillage__grille--n10 .ch-maillage__lien svg.i { display: none; }
@media (max-width: 1024px) {
  .ch-maillage__grille, .ch-maillage__grille--n10 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .ch-maillage__grille, .ch-maillage__grille--n10 { grid-template-columns: 1fr; }
}
