/* ==========================================================================
   Cabinet Wojakowski — feuille de style unique
   Les couleurs et polices se règlent ici, dans :root.
   Ordre : base, composants, puis adaptations par taille d'écran (en fin de fichier).
   ========================================================================== */

/* Polices hébergées sur le site (aucun appel à Google) */
@font-face { font-family: "Open Sans"; font-style: normal; font-weight: 300 800; font-display: swap; src: url("/fonts/open-sans-normal.woff2") format("woff2"); }
@font-face { font-family: "Open Sans"; font-style: italic; font-weight: 300 800; font-display: swap; src: url("/fonts/open-sans-italic.woff2") format("woff2"); }
@font-face { font-family: "Playfair Display"; font-style: normal; font-weight: 400 900; font-display: swap; src: url("/fonts/playfair-display-normal.woff2") format("woff2"); }

:root {
  --bordeaux-fonce: #430606;   /* en-tête, accueil, texte des articles */
  --bordeaux: #680000;         /* titres de rubriques, filets */
  --rouge-lien: #9e0e0e;       /* liens dans les articles */
  --taupe: #997361;            /* titres d'articles en liste (grands caractères) */
  --taupe-texte: #7d5c4d;      /* taupe assombri pour le texte des boutons (contraste AA) */
  --anthracite: #272725;       /* texte courant, barre du haut, pied de page */
  --gris-fond: #f4f4f3;        /* sections grises */
  --gris-date: #6b6d6f;
  --gris-extrait: #747474;
  --blanc: #fff;

  --police-titres: "Playfair Display", Georgia, serif;
  --police-texte: "Open Sans", Arial, sans-serif;

  --largeur: 960px;
}

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

body {
  margin: 0;
  font-family: var(--police-texte);
  font-size: 16px;
  color: var(--anthracite);
  background: var(--blanc);
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
}

img { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, h4 { font-family: var(--police-titres); font-weight: 400; margin: 0; text-wrap: pretty; }
p { margin: 0; }
button { font: inherit; color: inherit; }

:focus-visible { outline: 2px solid var(--bordeaux); outline-offset: 2px; }
.barre-haut :focus-visible, .entete :focus-visible, .accueil-hero :focus-visible, .pied :focus-visible { outline-color: var(--blanc); }

.conteneur { width: min(var(--largeur), 100% - 32px); margin-inline: auto; }
.conteneur--article { width: min(860px, 100% - 32px); }
.centre { text-align: center; }
.insecable { white-space: nowrap; }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.lien-evitement { position: absolute; left: -9999px; top: 8px; z-index: 10; }
.lien-evitement:focus { left: 16px; background: var(--blanc); color: var(--anthracite); padding: 8px 12px; }

/* ---------- Barre du haut ---------- */

.barre-haut { background: var(--anthracite); color: var(--blanc); }
.barre-haut__contenu {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 40px; gap: 16px;
}
.barre-haut p { font-size: 16px; text-align: right; }
.barre-haut strong { font-size: 18px; font-weight: 700; }

/* Icônes e-mail / LinkedIn : zone cliquable agrandie sans déplacer le dessin */
.reseaux { display: flex; gap: 20px; padding-left: 46px; }
.reseaux a { display: inline-flex; align-items: center; justify-content: center; color: var(--blanc); padding: 14px 10px; margin: -14px -10px; }
.reseaux--bordeaux { justify-content: center; padding: 0; margin-top: 16px; }
.reseaux--bordeaux a { color: var(--bordeaux); }
.reseaux--bordeaux svg { width: 18px; height: 18px; }

/* ---------- En-tête ---------- */

.entete { background: var(--bordeaux-fonce); color: var(--blanc); }
.entete__contenu {
  display: flex; align-items: center; justify-content: space-between;
  padding-block: 42px 16px;
}
.entete__logo img { width: 153px; }
.menu { display: flex; gap: 30px; padding-right: 16px; }
.menu a {
  font-family: var(--police-titres); font-size: 18px; letter-spacing: .03em;
  padding: 4px 0; border-bottom: 2px solid transparent;
}
.menu a.actif { border-bottom-color: var(--blanc); }
.entete__tel, .entete__burger { display: none; }
.entete__burger { background: none; border: 0; padding: 0; cursor: pointer; }

.retour { padding: 25px 0 175px; line-height: 22px; }
.retour a { font-size: 16px; text-decoration: underline; display: inline-block; padding-block: 11px; margin-block: -11px; }

/* ---------- Boutons ---------- */

.bouton {
  display: inline-block; min-width: 224px; padding: 17px 30px;
  font: 17px var(--police-texte); text-align: center;
  border: 2px solid currentColor; background: transparent; cursor: pointer;
  transition: background .2s, color .2s;
}
.bouton--blanc { color: var(--blanc); border-color: var(--blanc); }
.bouton--blanc:focus-visible { background: var(--blanc); color: var(--taupe-texte); }
.bouton--taupe, .bouton--bordeaux { color: var(--taupe-texte); border-color: var(--bordeaux); min-width: 280px; font-size: 16px; }
.bouton--bordeaux { padding: 14px 30px; }
.bouton--taupe:focus-visible, .bouton--bordeaux:focus-visible { background: var(--bordeaux); color: var(--blanc); }
.bouton--appeler { display: none; }

/* ---------- Sections ---------- */

.section { padding: 80px 0; }
.section--gris { background: var(--gris-fond); }

.titre-section { font-size: 35px; text-align: center; color: var(--anthracite); margin-bottom: 50px; }
.titre-section::after {
  content: ""; display: block; width: 42px; height: 3px;
  background: var(--bordeaux); margin: 18px auto 0;
}
.titre-section--gauche { text-align: left; }
.titre-section--gauche::after { margin-left: 0; }

/* ---------- Accueil ---------- */

.accueil-hero { background: var(--bordeaux-fonce); color: var(--blanc); padding: 156px 0 206px; }
.accueil-hero__contenu { display: flex; align-items: flex-start; gap: 29px; padding-left: 39px; }
.accueil-hero__photo { width: 347px; border: 3px solid var(--blanc); flex-shrink: 0; background: var(--bordeaux-fonce); }
.accueil-hero h1 { font-size: 35px; line-height: 1.7; margin-bottom: 30px; }
.accueil-hero p { font-size: 18px; font-weight: 300; line-height: 24px; margin-bottom: 58px; }
.accueil-hero p strong { font-weight: 700; }

.texte-centre { text-align: center; font-size: 18px; font-weight: 300; line-height: 27px; }
.texte-centre p + p { margin-top: 27px; }
.texte-centre strong { font-weight: 600; }
.lien-souligne { text-decoration: underline; }

.domaines { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; text-align: center; }
.domaines + .domaines { margin-top: 50px; }
.domaines--large-au-centre { grid-template-columns: 1fr 2fr 1fr; }
.domaines h3 { font-size: 24px; color: var(--bordeaux); margin-bottom: 26px; }
.domaines p { font-weight: 300; font-size: 16px; line-height: 1.45; }

.chiffres {
  color: var(--blanc); text-align: center; padding: 120px 0;
  background: linear-gradient(rgba(20, 20, 24, .75), rgba(20, 20, 24, .75)), url("/images/paris.webp") center / cover;
}
.chiffres__grille { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px 24px; }
.chiffres__icone {
  display: grid; place-items: center; width: 149px; height: 149px; margin: 0 auto 22px;
  border: 2px solid var(--blanc); border-radius: 50%;
}
.chiffres__icone svg { width: 73px; height: 73px; fill: var(--blanc); }
.chiffres h3 { font-size: 26px; margin-bottom: 12px; }
.chiffres p { font-weight: 300; }

.liste-accueil { display: grid; gap: 40px; }
.liste-accueil__item { display: grid; grid-template-columns: 550px 1fr; gap: 48px; align-items: start; }
.liste-accueil__item img { width: 100%; aspect-ratio: 550 / 295; object-fit: cover; }
.liste-accueil__item h3 { font-size: 30px; line-height: 45px; font-weight: 700; color: var(--taupe); }
.liste-accueil .extrait { -webkit-line-clamp: 2; }
.liste-accueil + .centre { margin-top: 50px; }

.bande-image { height: 271px; background: center / cover no-repeat; position: relative; }
.bande-image::after { content: ""; position: absolute; inset: 0; background: rgba(20, 20, 24, .75); }

.date { font-size: 13px; color: var(--gris-date); margin: 16px 0; }
.extrait {
  font-size: 15px; line-height: 21px; color: var(--gris-extrait);
  display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; overflow: hidden;
}

/* ---------- Formulaire ---------- */

.formulaire { width: min(930px, 100%); margin: 50px auto 0; display: grid; gap: 14px; justify-items: center; position: relative; }
.formulaire__ligne { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; width: 100%; }
.formulaire input, .formulaire textarea {
  width: 100%; border: 0; border-radius: 0; background: var(--blanc); padding: 10px;
  font: 16px var(--police-texte); color: var(--anthracite);
  -webkit-appearance: none; appearance: none;
}
.formulaire textarea { resize: vertical; min-height: 80px; }
.formulaire ::placeholder { color: var(--gris-extrait); opacity: 1; }
.formulaire [aria-invalid="true"] { box-shadow: inset 0 0 0 2px var(--bordeaux); }
.formulaire__retour { width: 100%; text-align: center; color: var(--bordeaux); }
.formulaire__retour:empty { position: absolute; }
.formulaire__retour--ok { color: #1f6b3a; font-weight: 600; }
.formulaire .bouton:disabled { opacity: .6; cursor: progress; }
.formulaire__piege { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.formulaire__mention { font-size: 13px; color: var(--gris-date); text-align: center; }
.formulaire__mention a { text-decoration: underline; }
.formulaire .bouton { margin-top: 14px; }

/* ---------- Pages intérieures ---------- */

.bandeau { height: 245px; background: 50% 0 / cover no-repeat; position: relative; }
.bandeau::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .65); }

.avocats { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; text-align: center; padding-top: 31px; }
.avocat img { width: 230px; height: 230px; border-radius: 50%; object-fit: cover; margin: 0 auto 16px; }
.avocat h2 { font-size: 20px; color: var(--bordeaux); margin-bottom: 15px; }
.avocat p { font-size: 16px; line-height: 22px; color: #666; max-width: 440px; margin-inline: auto; }
.avocat:first-child p { max-width: 322px; }
.avocat p + p { margin-top: 22px; }

.partenaires { padding: 75px 0; border-block: 1px solid #e6e6e4; }
.partenaires__logos { display: flex; align-items: center; justify-content: space-around; gap: 30px; flex-wrap: wrap; }
.partenaires__logos img { min-width: 0; }
.partenaires__logos img:nth-child(1) { width: 300px; }
.partenaires__logos img:nth-child(2) { width: 250px; }
.partenaires__logos img:nth-child(3) { width: 300px; }

.competences { font-size: 18px; font-weight: 300; line-height: 1.4; padding-inline: 30px; }
.competences p + p { margin-top: 24px; }
.competences strong { font-family: var(--police-titres); font-weight: 400; font-size: 20px; color: var(--bordeaux); }

.carte { display: block; width: 100%; height: 200px; border: 0; filter: grayscale(1); }
.itineraire { position: relative; display: inline-block; margin-top: 18px; }
.itineraire > summary { display: inline-flex; align-items: center; justify-content: center; gap: 10px; list-style: none; }
.itineraire > summary::-webkit-details-marker { display: none; }
.itineraire[open] > summary { background: var(--bordeaux); color: var(--blanc); }
.itineraire__choix {
  position: absolute; z-index: 5; top: calc(100% + 6px); left: 0; right: 0;
  margin: 0; padding: 6px 0; list-style: none; text-align: left;
  background: var(--blanc); border: 1px solid #ddd; box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}
/* sélecteur renforcé : la colonne Adresse (.coordonnees a) a ses propres marges tactiles */
.itineraire .itineraire__choix a { display: block; margin: 0; padding: 13px 22px; color: var(--anthracite); }
.coordonnees { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; text-align: center; line-height: 1.4; }
.coordonnees h2 { font-family: var(--police-texte); font-weight: 700; font-size: 16px; }
.coordonnees p + p { margin-top: 18px; }

.page-404__actions { margin-top: 30px; display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }

/* ---------- Liste des publications ---------- */

.section--publications { padding: 45px 0 50px; }
.publications { display: grid; grid-template-columns: 625px 1fr; column-gap: 30px; align-items: start; }
.publications__titre { grid-column: 1; grid-row: 1; }
.publications__recherche { grid-column: 2; grid-row: 2; }
.liste-publications { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: minmax(0, 1fr); gap: 50px; }
.recherche {
  width: 100%; height: 32px; padding: 0 37px 0 15px;
  border: 1px solid #333; border-radius: 0; -webkit-appearance: none; appearance: none;
  font: 14px var(--police-texte); color: var(--anthracite);
  background: var(--blanc) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236b6d6f' stroke-width='3'%3E%3Ccircle cx='10' cy='10' r='6.5'/%3E%3Cpath d='M15 15l6 6' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center / 17px;
}
.recherche::placeholder { color: var(--gris-date); opacity: 1; }
.recherche::-webkit-search-decoration { -webkit-appearance: none; }
.recherche::-webkit-search-cancel-button {
  -webkit-appearance: none; appearance: none; width: 16px; height: 16px; margin-right: 4px; cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='8' fill='%236b6d6f'/%3E%3Cpath d='M5.2 5.2l5.6 5.6M10.8 5.2l-5.6 5.6' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center / contain no-repeat;
}
.publication img { width: 100%; aspect-ratio: 625 / 375; object-fit: cover; margin-bottom: 16px; }
.publication h2 { font-size: 25px; line-height: 37.5px; color: var(--bordeaux); }
.lire-la-suite { display: inline-block; margin-top: 14px; color: var(--gris-date); }

/* ---------- Article ---------- */

.article h1 { font-size: 48px; color: var(--anthracite); }
.article__auteur { color: var(--gris-date); margin: 4px 0 0; }
.article__date { display: inline-block; margin: 10px 0 64px; padding: 4px 10px; font-size: 14px; color: var(--bordeaux-fonce); background: var(--gris-fond); }
.article__image { margin-bottom: 12px; }
.article__image img { width: 100%; }
.article__texte { font-size: 18px; line-height: 24px; color: var(--bordeaux-fonce); }
.article__texte p { margin: 0 0 24px; }
.article__texte h2 { font-family: var(--police-texte); font-weight: 700; font-size: 18px; text-align: center; margin: 0 0 24px; }
.article__texte h2.gauche { text-align: left; }
.article__texte a { color: var(--rouge-lien); text-decoration: underline; text-underline-offset: 2px; word-break: break-word; }
.article__texte ul { margin: 0 0 24px; padding-left: 22px; }
.article__texte li > ul { margin: 0; }

/* Texte d'une décision de justice reproduite dans un article */
.decision {
  margin: 0 0 32px; padding: 24px 28px;
  background: #faf7f6; border-left: 3px solid var(--bordeaux);
  font-size: 16px; line-height: 1.6; color: #2b2b2b;
}
.article__texte .decision p { margin: 0 0 14px; }
.article__texte .decision h2 { font-family: var(--police-titres); font-weight: 400; font-size: 20px; line-height: 1.3; text-align: left; color: var(--bordeaux); margin: 0 0 16px; }
.article__texte .decision h3 { font-family: var(--police-texte); font-weight: 700; font-size: 16px; margin: 24px 0 12px; }
.decision > :last-child { margin-bottom: 0; }

.article__navigation { display: flex; justify-content: space-between; gap: 16px; margin: 30px 0; }
.article__navigation a { display: inline-block; padding-block: 11px; margin-block: -11px; }
.article__navigation a:last-child { text-align: right; }

.partage { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 60px; }
.partage a {
  display: inline-flex; align-items: center; gap: 8px; min-height: 32px; padding-right: 12px; overflow: hidden;
  font: 13px var(--police-texte); color: #555; background: #eee; border: 1px solid #ddd; border-radius: 3px;
}
.partage svg { flex: none; align-self: stretch; width: 32px; height: auto; padding: 8px; color: var(--blanc); }
.partage__facebook svg { background: #3b5998; }
.partage__x svg { background: #000; }
.partage__linkedin svg { background: #0077b5; }
.partage__mail svg { background: #7a7a7a; }

.grille-articles { display: grid; grid-template-columns: 1fr 1fr; gap: 50px 20px; padding-bottom: 80px; }
.carte-article img { width: 100%; aspect-ratio: 415 / 225; object-fit: cover; margin-bottom: 20px; }
.carte-article h3 { font-size: 23px; line-height: 34.5px; font-weight: 700; color: var(--taupe); }

/* ---------- Pied de page ---------- */

.pied { background: var(--anthracite); color: var(--blanc); padding: 50px 0; }
.pied__grille { display: grid; grid-template-columns: 240px 260px 330px 1fr; line-height: 22px; }
.pied__grille > * { padding-right: 40px; }
.pied__logo .reseaux { padding-left: 25px; margin-top: 18px; }
.pied h2 { font-size: 22px; line-height: normal; margin-bottom: 6px; }
.pied p + p { margin-top: 12px; }
.pied__menu { display: flex; flex-direction: column; gap: 10px; padding: 8px 15px 0 0; }
.pied__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .2); font-size: 14px; color: #cfcfcc; }
.pied__bas a { text-decoration: underline; }

/* Page mentions légales */
.mentions h2 { font-size: 22px; color: var(--bordeaux); margin: 36px 0 12px; }
.mentions p { line-height: 1.6; }
.mentions p + p { margin-top: 12px; }
.mentions a { text-decoration: underline; word-break: break-word; }

/* ==========================================================================
   Adaptations par taille d'écran
   ========================================================================== */

/* Ordinateur : rythme vertical de l'accueil et fonds fixes (parallaxe) */
@media (min-width: 901px) {
  .section--presentation { padding: 60px 0 92px; }
  .section--presentation .titre-section { margin-bottom: 34px; }
  .section--domaines { padding: 78px 0 118px; }
  .section--domaines .titre-section { margin-bottom: 67px; }
  .domaines { column-gap: 24px; }
  .section--publications-accueil { padding-top: 90px; }
  .section--publications-accueil .titre-section { margin-bottom: 20px; }
  .liste-accueil { gap: 24px; }
  .liste-accueil__item { column-gap: 58px; }
  .liste-accueil + .centre { margin-top: 32px; }
  .section--contact { padding-top: 57px; }
}
@media (min-width: 901px) and (hover: hover) and (prefers-reduced-motion: no-preference) {
  .chiffres, .bande-image { background-attachment: fixed; background-position: 50% 0; }
}

/* Petits ordinateurs et tablettes en paysage (901 à 1000 px) */
@media (min-width: 901px) and (max-width: 1000px) {
  .accueil-hero p br { display: none; }
  .accueil-hero p { text-wrap: balance; }
  .liste-accueil__item { grid-template-columns: 1fr 1fr; column-gap: 32px; }
  .liste-accueil__item h3 { font-size: 24px; line-height: 34px; }
  .chiffres h3 { font-size: 23px; }
  .pied__grille { grid-template-columns: 180px 1fr 1fr auto; }
  .pied__grille > * { padding-right: 24px; }
}

/* Écrans larges mais peu hauts (portable, tablette en paysage) */
@media (min-width: 901px) and (max-height: 760px) {
  .accueil-hero { padding: 72px 0 96px; }
}

/* Tablettes en portrait et téléphones */
@media (max-width: 900px) {
  .barre-haut__contenu { justify-content: center; padding-block: 5px; }
  .barre-haut .reseaux { display: none; }
  .barre-haut p { text-align: center; font-size: 14px; line-height: 30px; }
  .barre-haut p a { display: inline-block; }
  .barre-haut strong { font-size: 15px; line-height: 1; }

  .entete__contenu { padding-block: 16px; flex-wrap: wrap; }
  .entete__logo { margin-right: auto; }
  .entete__logo img { width: 110px; }
  .entete__burger {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
    width: 44px; height: 44px; margin-right: -9px;
  }
  .entete__burger span { display: block; width: 26px; height: 2px; background: var(--blanc); transition: transform .2s, opacity .2s; }
  .entete.menu-ouvert .entete__burger span:nth-child(1) { transform: translateY(8px) rotate(45deg); }
  .entete.menu-ouvert .entete__burger span:nth-child(2) { opacity: 0; }
  .entete.menu-ouvert .entete__burger span:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
  .menu { display: none; width: 100%; flex-direction: column; gap: 0; padding: 14px 0 0; }
  .entete.menu-ouvert .menu { display: flex; }
  .menu a { align-self: flex-start; padding: 10px 0; border-bottom: 0; }
  .menu a.actif { text-decoration: underline 2px; text-underline-offset: 6px; }

  .accueil-hero { padding: 50px 0 70px; }
  .accueil-hero__contenu { flex-direction: column; align-items: center; padding: 0; text-align: center; }
  .accueil-hero__texte { max-width: 600px; }
  .accueil-hero__photo { width: min(347px, 100%); }
  .accueil-hero h1 { font-size: 28px; }
  .accueil-hero p br { display: none; }
  .accueil-hero p { margin-bottom: 36px; }

  .section { padding: 56px 0; }
  .titre-section { font-size: 30px; }
  .domaines, .chiffres__grille, .avocats, .coordonnees, .grille-articles { grid-template-columns: 1fr; }
  .domaines > div { max-width: 600px; margin-inline: auto; }
  .domaines + .domaines { margin-top: 40px; }
  .liste-accueil__item { grid-template-columns: 1fr; gap: 20px; }
  .liste-accueil__item h3 { font-size: 24px; line-height: 34px; }

  .publications { grid-template-columns: minmax(0, 1fr); }
  .publications__titre, .publications__recherche, .liste-publications { grid-column: 1; grid-row: auto; }
  .publications__titre { margin-bottom: 24px; }
  .publications__recherche { margin-bottom: 32px; }

  .formulaire__ligne { grid-template-columns: 1fr; gap: 14px; }
  .formulaire input { padding: 12px; }
  .competences { padding-inline: 0; }
  .avocat:first-child p { max-width: 440px; }
  .bandeau { height: 160px; }

  .retour { padding-bottom: 50px; }
  .article h1 { font-size: 34px; }
  .article__texte { font-size: 17px; }

  .pied__grille { grid-template-columns: 1fr; gap: 30px; }
  .pied__grille > * { padding-right: 0; }
  .pied__logo .reseaux { padding-left: 10px; margin-top: 6px; gap: 0; }
  .reseaux a { width: 44px; height: 44px; padding: 0; margin: 0; }
  .reseaux--bordeaux { gap: 0; }
  .pied__menu { gap: 0; padding-top: 0; }
  .pied__menu a { padding-block: 11px; }
  .pied p a, .coordonnees a { display: inline-block; padding-block: 11px; margin-block: -11px; }
  .pied p + p { margin-top: 22px; }
  .coordonnees .reseaux--bordeaux { margin-top: 22px; }
}

/* Tablettes en portrait : deux colonnes là où il y a la place */
@media (min-width: 600px) and (max-width: 900px) {
  .formulaire__ligne { grid-template-columns: 1fr 1fr; gap: 20px; }
}
@media (min-width: 600px) {
  .partenaires__logos { flex-wrap: nowrap; }
}
@media (min-width: 700px) and (max-width: 900px) {
  .grille-articles { grid-template-columns: 1fr 1fr; }
}

/* Bouton d'appel dans le bandeau d'accueil : seulement sur téléphone */
@media (max-width: 767px) and (pointer: coarse) {
  .bouton--contacter { display: none; }
  .bouton--appeler { display: inline-block; }
}

/* Téléphones */
@media (max-width: 600px) {
  /* La barre du haut laisse place à une icône d'appel dans l'en-tête */
  .barre-haut--avec-entete { display: none; }
  .barre-haut p { line-height: 44px; }
  .entete__tel { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin-right: 4px; }

  .accueil-hero { padding: 32px 0 56px; }
  .accueil-hero__photo { width: min(220px, 70%); }
  .accueil-hero h1 { font-size: clamp(22px, 6.9vw, 28px); line-height: 1.35; margin-bottom: 20px; }
  .accueil-hero p { margin-bottom: 28px; }

  .liste-accueil__item h3 { font-size: 20px; line-height: 28px; }
  .publication h2 { font-size: 21px; line-height: 30px; }
  .carte-article h3 { font-size: 19px; line-height: 27px; }

  .partenaires__logos { flex-direction: column; }

  .retour { padding: 16px 0 28px; }
  .article h1 { font-size: clamp(26px, 7.5vw, 34px); line-height: 1.2; }
  .article__date { margin-bottom: 28px; }
  .decision { padding: 16px 14px; }
  .partage { display: grid; grid-template-columns: 1fr 1fr; }
}

/* Survol : seulement avec une souris (évite les états « collés » après un toucher) */
@media (hover: hover) {
  .menu a:hover { border-bottom-color: var(--blanc); }
  .bouton--blanc:hover { background: var(--blanc); color: var(--taupe-texte); }
  .bouton--taupe:hover, .bouton--bordeaux:hover { background: var(--bordeaux); color: var(--blanc); }
  .liste-accueil__item:hover h3, .carte-article:hover h3, .publication h2 a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
  .lire-la-suite:hover, .article__navigation a:hover, .pied a:hover, .barre-haut p a:hover, .coordonnees a:hover { text-decoration: underline; }
  .retour a:hover, .article__texte a:hover { text-decoration-thickness: 2px; }
  .partage a:hover { background: #e2e2e2; }
  .itineraire .itineraire__choix a:hover { background: var(--gris-fond); text-decoration: none; }
  .reseaux a:hover { opacity: .75; }
}

/* Tablettes tactiles en paysage (mise en page ordinateur, au doigt) */
@media (min-width: 901px) and (pointer: coarse) {
  .pied__menu { gap: 0; margin-top: -11px; }
  .pied__menu a { padding-block: 11px; }
  .menu a { padding-block: 9px; }
  .formulaire input { padding-block: 12px; }
}

/* Écrans tactiles : cibles d'au moins 44 px */
@media (pointer: coarse) {
  .partage a { min-height: 44px; }
  .partage svg { width: 44px; padding: 13px; }
  .recherche { height: 44px; font-size: 16px; }
  .lire-la-suite { padding-block: 11px; margin-block: 3px -11px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; }
}
