@charset "utf-8";
/* Refonte « Sobre », pages intérieures. Feuille additionnelle chargée après style.css et plein-cadre.css :
   révélations à l'entrée, bandes photographiques en mouvement, portraits qui prennent leurs couleurs.
   Rien ici ne change la structure des pages, seulement la manière dont elles arrivent à l'écran. */

:root { --ease-out: cubic-bezier(.16, 1, .3, 1); --night: #060c11; --night-2: #0b131a; --fg-55: var(--ink-55); --fg-38: var(--ink-38); }
html.js:not(.ready) body { transition: none; }
/* Author (Indian Type Foundry, via Fontshare, licence libre pour usage commercial, auto-hébergée) : la sans de tout le site */
@font-face { font-family: 'Playfair Display'; src: url('/assets/fonts/playfair-display-latin-700-italic.woff2') format('woff2'); font-weight: 600 900; font-style: italic; font-display: swap; }
@font-face { font-family: 'Author'; src: url('/assets/fonts/author-latin-600-italic.woff2') format('woff2'); font-weight: 600 900; font-style: italic; font-display: swap; }
@font-face { font-family: 'Author'; src: url('/assets/fonts/author-latin-400-normal.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Author'; src: url('/assets/fonts/author-latin-500-normal.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: 'Author'; src: url('/assets/fonts/author-latin-600-normal.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
:root { --sans: 'Author', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif; }

/* Bande photographique en tête de page */
.photo { position: relative; overflow: hidden; height: clamp(22rem, 72svh, 42rem); display: grid; place-items: center; color: var(--paper); background: var(--night); }
.photo__img { position: absolute; inset: -24% 0; }
.photo__img img { width: 100%; height: 100%; object-fit: cover; }
.photo::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(6, 12, 17, .3), rgba(6, 12, 17, .55)); }
.photo__q { position: relative; z-index: 1; font-family: var(--serif); font-size: clamp(1.6rem, 1rem + 3.2vw, 4.2rem); line-height: 1.08; letter-spacing: -.016em; text-align: center; max-width: 22ch; padding-inline: var(--gutter); text-wrap: balance; }
.photo__q em { font-style: normal; }


.photo--head { height: clamp(18rem, 52svh, 34rem); }
.photo--head .photo__q { font-size: clamp(1.4rem, .9rem + 2.4vw, 3.2rem); max-width: 26ch; }
.photo--head::after { background: linear-gradient(to bottom, rgba(6, 12, 17, .35), rgba(6, 12, 17, .6)); }

/* Portrait de la fiche avocat : arrive par la coupe, respire lentement */
.bio__side .pf { overflow: hidden; }
.bio__side .pf img { transform: scale(1.04); transition: transform 1.6s var(--ease-out); }
.bio__side .pf:hover img { transform: scale(1); }

/* Sommaire des avocats : les portraits arrivent en cascade, le regard les colore */
.grain.is-on .pf__c, .grain:hover .pf__c { clip-path: polygon(0 0, calc(100% + var(--cut, 18%)) 0, 100% 100%, calc(-1 * var(--cut, 18%)) 100%); }

/* Mouvement. Les états d'attente ne s'appliquent que si JS tourne. */
html.js [data-reveal] { opacity: 0; transform: translate3d(0, 28px, 0); transition: opacity .9s var(--ease-out), transform .9s var(--ease-out); transition-delay: var(--d, 0s); will-change: opacity, transform; }
html.js [data-reveal="left"] { transform: translate3d(-40px, 0, 0); }
html.js [data-reveal="right"] { transform: translate3d(40px, 0, 0); }
html.js [data-reveal="scale"] { transform: scale(.94); }
html.js [data-reveal="none"] { transform: none; }
html.js [data-reveal="clip"] { transform: none; clip-path: polygon(0 -.3em, 0 -.3em, calc(-1 * var(--cut, 18%)) calc(100% + .3em), calc(-1 * var(--cut, 18%)) calc(100% + .3em)); transition: clip-path .8s var(--lame), opacity .4s; }
html.js [data-reveal].is-in { opacity: 1; transform: none; clip-path: none; }
html.js [data-reveal="clip"].is-in { clip-path: polygon(0 -.3em, calc(100% + var(--cut, 18%)) -.3em, 100% calc(100% + .3em), calc(-1 * var(--cut, 18%)) calc(100% + .3em)); }
html.js [data-reveal="line"] { transform: scaleX(0); transform-origin: left; }
html.js [data-reveal="line"].is-in { transform: scaleX(1); }
html.js .split .w { display: inline-block; overflow: hidden; vertical-align: bottom; padding: .12em 0 .24em; margin: -.12em 0 -.24em; }
html.js .split .w > span { display: inline-block; transform: translateY(135%); transition: transform 1s var(--ease-out); transition-delay: calc(var(--i, 0) * 55ms + var(--d, 0s)); }
html.js .split.is-in .w > span { transform: none; }
.split .pz { font-weight: 400; font-style: inherit; }
[data-parallax] { will-change: transform; }
.marquee { overflow: hidden; white-space: nowrap; }
.marquee__track { display: inline-flex; gap: 3rem; animation: marquee var(--marquee-t, 40s) linear infinite; padding-right: 3rem; }
.marquee:hover .marquee__track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }
.progress { position: fixed; top: 0; left: 0; z-index: 110; height: 2px; width: 100%; transform-origin: left; transform: scaleX(0); background: var(--ink); pointer-events: none; }
.cursor { position: fixed; top: 0; left: 0; z-index: 200; width: 14px; height: 14px; margin: -7px 0 0 -7px; border-radius: 50%; background: var(--paper); pointer-events: none; mix-blend-mode: difference; transform: translate3d(var(--x, -100px), var(--y, -100px), 0) scale(var(--s, 1)); transition: transform .12s linear, opacity .3s; opacity: 0; }
body.has-cursor .cursor { opacity: 1; }
body.has-cursor.cursor-big .cursor { --s: 4; }
@media (pointer: coarse) { .cursor { display: none; } }

html.nomotion [data-reveal], html.nomotion .split .w > span { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; }
html.nomotion .marquee__track { animation: none; }
html.nomotion .cursor, html.nomotion .progress { display: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  html.js [data-reveal], html.js .split .w > span { opacity: 1; transform: none; clip-path: none; }
  .marquee__track { animation: none; }
}


/* ---------- Mouvement (par défaut) : les bandes arrivent par la coupe, les portraits se colorent ---------- */
html.js.motion-vif .photo .photo__img { clip-path: polygon(0 0, 0 0, calc(-1 * var(--cut, 18%)) 100%, calc(-1 * var(--cut, 18%)) 100%); transition: clip-path 1.1s var(--lame); }
html.js.motion-vif .photo.is-in .photo__img { clip-path: polygon(0 0, calc(100% + var(--cut, 18%)) 0, 100% 100%, calc(-1 * var(--cut, 18%)) 100%); }
html.js.motion-vif .carte::after { transition-duration: .7s; }
@media (prefers-reduced-motion: reduce) { html.js.motion-vif .photo .photo__img { clip-path: none; } }

/* Liste des affaires (page Affaires) : matière en libellé au-dessus du titre, titre Playfair, glyphe, flèche au survol sur grand écran.
   Les chronologies des fiches avocat (.case avec .case__n) gardent leur mise en forme. */
.cases .case:not(:has(.case__n)) { display: grid; grid-template-columns: 1.2rem minmax(0, 1fr) 1.6rem; grid-template-rows: auto auto; gap: .2rem .8rem; align-items: start; padding: 1rem .4rem; border-bottom: 1px solid var(--rule); transition: background var(--t); }
.cases .case:not(:has(.case__n))::before { content: ''; grid-column: 1; grid-row: 1 / 3; width: .28rem; height: 1rem; margin-top: .3rem; background: rgba(34, 31, 32, .42); transform: skewX(calc(-1 * var(--coupe))); transition: background var(--t); }
.cases .case:not(:has(.case__n)) .case__cat { grid-column: 2; grid-row: 1; margin: 0; font-size: .875rem; font-weight: 500; letter-spacing: .02em; text-transform: none; }
.cases .case:not(:has(.case__n)) .case__t { grid-column: 2; grid-row: 2; font-family: var(--serif); font-size: clamp(1.02rem, .95rem + .35vw, 1.3rem); line-height: 1.3; letter-spacing: -.008em; max-width: 46rem; text-decoration: none; }
.cases .case:not(:has(.case__n))::after { content: '\2192'; grid-column: 3; grid-row: 1 / 3; justify-self: end; align-self: center; font-size: 1.15rem; color: var(--ink); opacity: 0; transform: translateX(-8px); transition: opacity var(--t), transform var(--t); }
.cases .case:not(:has(.case__n)):hover::before, .cases .case:not(:has(.case__n)):focus-visible::before { background: var(--ink); }
.cases .case:not(:has(.case__n)):hover::after, .cases .case:not(:has(.case__n)):focus-visible::after { opacity: 1; transform: none; }
@media (max-width: 760px) { .cases .case:not(:has(.case__n)) { grid-template-columns: 1.2rem minmax(0, 1fr); } .cases .case:not(:has(.case__n))::after { display: none; } }

/* Filtres de la page Affaires : une rangée d'onglets soulignés, sans cadre, le glyphe oblique marque l'actif */
.pc .filters { display: flex; flex-wrap: wrap; gap: 0 clamp(1.2rem, 2.6vw, 2.4rem); margin-bottom: 2.4rem; border-bottom: 1px solid var(--rule); }
.pc .filters button {
  position: relative; background: none; border: 0; border-radius: 0; padding: .2rem 0 .95rem; cursor: pointer;
  font-family: var(--serif); font-size: clamp(1rem, .92rem + .4vw, 1.25rem); letter-spacing: -.008em; color: var(--ink-55);
  transition: color var(--t);
}
.pc .filters button::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--ink); transform: scaleX(0); transform-origin: left; transition: transform .45s var(--lame); }
.pc .filters button:hover { color: var(--ink); }
.pc .filters button[aria-pressed='true'] { color: var(--ink); background: none; border: 0; }
.pc .filters button[aria-pressed='true']::after { transform: scaleX(1); }
@media (max-width: 560px) { .pc .filters { gap: 0 1rem; } .pc .filters button { font-size: 1rem; padding-bottom: .7rem; } }

/* Rendez-vous, page Contact */

/* Page Contact : la colonne adresse suit la largeur du formulaire */
.pc .duo--even > div > .prose, .pc .duo--even > div > .caveat { max-width: 38rem; }
.pc .duo--even .caveat { margin-top: 2.5rem; }

/* Revue Astra 2 : libellés des pages intérieures comme sur l'accueil */
.pc .label { font: 400 1.125rem/1.3 var(--serif); text-transform: none; letter-spacing: 0; padding-top: 0; border-top: 0; margin-bottom: 1.5rem; color: inherit; }
.pc .label::before { content: none; }
/* Contact : l'adresse du cabinet en premier */
.contact__mailp { margin: 0 0 2.5rem; }
.contact__mail { font-family: var(--serif); font-size: clamp(1.25rem, 1rem + 1.4vw, 2.2rem); line-height: 1.15; letter-spacing: -.01em; text-transform: none; color: inherit; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; overflow-wrap: anywhere; }
.contact__mail:hover { text-decoration-thickness: 2px; }

@media (prefers-reduced-motion: reduce) { html.js [data-reveal] { opacity: 1 !important; transform: none !important; clip-path: none !important; transition: none !important; } }

/* Page Avocats : survol adouci (retour d'Ulysse, 24/09). La rangée ne bouge plus,
   le portrait avance à peine et sa couleur monte en fondu. */
.pc .grain { transition: transform .7s var(--ease-out); }
.pc .chaine:hover .grain + .grain, .pc .chaine:focus-within .grain + .grain { margin-left: clamp(-3.4rem, -2.8vw, -.7rem); }
.pc .grain:hover, .pc .grain:focus-visible { transform: scale(1.03); }
.pc .grain .pf__c, .grain .pf__c { clip-path: none !important; opacity: 0; transition: opacity .8s var(--ease-out); }
.pc .grain:hover .pf__c, .pc .grain:focus-visible .pf__c, .grain.is-on .pf__c { opacity: 1; }
@media (max-width: 700px) { .pc .chaine:hover .grain + .grain, .pc .chaine:focus-within .grain + .grain { margin-left: -2.5%; } }
@media (prefers-reduced-motion: reduce) { .pc .grain, .pc .grain .pf__c { transition: none; } }

/* Bande sombre « Autres pratiques » : titre, liens et bouton lisibles, séparée du pied de page */
.pc .band--ink .duo__aside, .pc .band--ink .label { color: var(--paper-70); }
.pc .band--ink .btn { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.pc .band--ink .btn:hover, .pc .band--ink .btn:focus-visible { background: transparent; color: var(--paper); border-color: var(--paper); }
.pc main > .band--ink:last-child { border-bottom: 1px solid var(--rule-dark); }

/* Ouverture des pages : une seule marge latérale (la section et son .wrap l'ajoutaient deux fois) */
.pc .pc-hero { padding-inline: 0; }

/* Avocats : noms toujours visibles sur écran tactile, grille régulière sur mobile */
.grain__nom { display: none; }
@media (hover: none) {
  .pc .eclipse__leg { display: none; }
  .pc .grain__nom { display: block; margin-top: .5rem; font: 400 1rem/1.2 var(--serif); color: var(--ink); }
}
@media (max-width: 700px) {
  .pc .chaine { gap: 1.25rem 4px; align-items: flex-start; justify-content: flex-start; }
  .pc .grain { width: calc((100% - 8px) / 3); }
  .pc .grain + .grain, .pc .chaine:hover .grain + .grain, .pc .chaine:focus-within .grain + .grain { margin-left: 0; }
  .pc .grain .carre { box-shadow: none; }
}

/* Fiches avocats : les repères suivent le nom, près du texte */
.pc .bio__body .bio__facts { margin: 0; padding: 0 0 2rem; max-width: 40rem; }

/* Lisibilité : fin des petites capitales espacées de l'ancienne DA, textes à 14 px au moins */
.pc :is(.nav a, .burger, .pagehead__kicker, .crumb, .link, .btn, .foot h3, .roster__role, .crewA__role, .leg__role, .bio__facts dt, dt, .field label, .case__cat, .filters button) { text-transform: none; letter-spacing: .01em; font-size: .875rem; }
.pc :is(.btn, .nav a) { font-weight: 500; }
.pc .foot__base { font-size: .875rem; }
.pc .bio__facts dd { font-size: .9375rem; }
/* Contrastes : pied de page et sélecteur de langue au-dessus de 4,5:1 */
.pc .foot h3, .pc .foot__base { color: var(--paper-70); }
.pc .nav a.lang { color: var(--ink-55); }
/* Cibles tactiles de 44 px au moins */
.pc .burger { min-width: 44px; min-height: 44px; padding: .75rem 0 .75rem 1rem; }
.pc :is(.link, .crumb, .foot address a) { position: relative; }
.pc :is(.link, .crumb, .foot address a)::after { content: ''; position: absolute; inset: -.9rem -.25rem; }
.pc .filters button { min-height: 44px; }
/* Contact : l'adresse ne touche plus le bouton Envoyer */
.pc .duo--even:has(#contact-form) { gap: 3.5rem; }
@media (max-width: 880px)  { .pc .nav a { font-size: 1rem; } }

/* Titres de section des bandes claires en encre, pas en gris secondaire */
.pc .duo__aside .label { color: var(--ink); }
.pc .band--ink .duo__aside .label { color: var(--paper-70); }

/* Fiches affaire : le texte, puis les repères en colonne à droite */
.pc .dossier { display: grid; grid-template-columns: minmax(0, 40rem) minmax(0, 18rem); gap: 4rem; align-items: start; }
.pc .dossier .dossier__meta { grid-template-columns: minmax(0, 1fr); margin-block: 0; position: sticky; top: calc(var(--head) + 2rem); }
@media (max-width: 900px) {
  .pc .dossier { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .pc .dossier .dossier__meta { order: -1; position: static; margin-block: 0 2rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
}

/* Menu mobile : le panneau couvre tout l'écran sous l'en-tête */
@media (max-width: 880px) { .pc .nav { inset: var(--head) 0 auto 0; height: calc(100dvh - var(--head)); max-height: none; border-bottom: 0; } }
/* Zones tactiles : marge verticale arrondie au-dessus de 44 px */
.pc :is(.link, .crumb, .foot address a)::after { inset: -1rem -.25rem; }
.pc .contact__mail { position: relative; display: inline-block; }
.pc .contact__mail::after { content: ''; position: absolute; inset: -.5rem 0; }
.pc .foot li a { position: relative; }
.pc .foot li a::after { content: ''; position: absolute; inset: -1rem -.25rem; }
.pc .crumb::after { inset: -1rem -.5rem; }
.pc .contact__mail::after { inset: -.7rem 0; }

/* Pied de page découvert : sur les écrans où il tient entier, le pied de page reste fixe derrière la page, qui glisse
   et le découvre en fin de défilement. motion.js mesure sa hauteur et pose html.foot-reveal ; sinon il suit la page.
   Le logotype en très grand, presque transparent, occupe le fond. */
.foot { position: relative; overflow: hidden; isolation: isolate; }
.foot::before { content: ''; position: absolute; z-index: -1; left: var(--gutter); right: var(--gutter); bottom: -.6vw; aspect-ratio: 214 / 50; background-color: currentColor; opacity: .06; -webkit-mask: url('/assets/images/brand/logotype-cw.svg') no-repeat left bottom / contain; mask: url('/assets/images/brand/logotype-cw.svg') no-repeat left bottom / contain; pointer-events: none; }
html.foot-reveal body { padding-bottom: var(--foot-h, 0px); }
html.foot-reveal main { position: relative; z-index: 1; background: inherit; box-shadow: 0 2.5rem 4rem -1.5rem rgba(0, 0, 0, .5); }
html.foot-reveal .foot { position: fixed; left: 0; right: 0; bottom: 0; z-index: 0; border-top: 1px solid rgba(236, 232, 227, .14); }
@media (max-width: 700px) { .foot { padding-bottom: calc(23vw + 1.5rem); } }
/* Pied de page plus haut que l'écran (téléphones) : il s'accroche sous l'en-tête pendant que la page glisse et le découvre,
   puis défile normalement pour montrer sa fin. La place où il reste accroché est un vrai bloc (body::after). */
html.foot-tall main { position: relative; z-index: 1; background: inherit; box-shadow: 0 2.5rem 4rem -1.5rem rgba(0, 0, 0, .5); }
html.foot-tall .foot { position: sticky; top: var(--mast-h, 0px); z-index: 0; margin-top: calc(var(--mast-h, 0px) - 100svh); border-top: 1px solid rgba(236, 232, 227, .14); }
html.foot-tall body::after { content: ''; display: block; height: calc(100svh - var(--mast-h, 0px)); }

/* Fiches d'affaire au format d'origine (Problème, Enjeux, Solution) : listes et phrase d'accroche finale */
.pc .dossier__body ul { margin: 0 0 1.2rem; padding-left: 1.2rem; list-style: disc; max-width: var(--measure); }
.pc .dossier__body li { margin-bottom: .35rem; }
.pc .dossier__accroche { margin-top: 2.6rem; padding-top: 1.4rem; border-top: 1px solid var(--rule); font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, 1.05rem + .4vw, 1.45rem); line-height: 1.4; }
.pc .dossier__accroche span { display: block; margin-top: .7rem; font-family: var(--sans); font-style: normal; font-size: .875rem; letter-spacing: .01em; }

/* Ancres des expertises depuis l accueil : le titre ne passe pas sous l en-tete fixe */
.h-md[id] { scroll-margin-top: 7rem; }

/* Pages d'expertise : liste des interventions, repère oblique de la marque */
.expertise__liste { list-style: none; margin: 0; padding: 0; display: grid; gap: .85rem; }
.expertise__liste li { position: relative; padding-left: 1.4rem; }
.expertise__liste li::before { content: ''; position: absolute; left: .2rem; top: .45em; width: 1px; height: .95em; background: currentColor; opacity: .55; transform: rotate(18deg); }

/* Page Avocats, remarques de Sarah (08/10) : portraits côte à côte sans chevauchement (plus de visages coupés),
   et un seul nom affiché à la fois au survol (le nom sortant disparaît d'un coup, l'entrant apparaît en fondu) */
.pc .chaine { gap: clamp(.5rem, 1vw, 1rem); }
.pc .grain { width: min(19rem, calc((100% - 5 * clamp(.5rem, 1vw, 1rem)) / 6)); }
.pc .grain + .grain, .pc .chaine:hover .grain + .grain, .pc .chaine:focus-within .grain + .grain { margin-left: 0; }
.pc .grain .carre { box-shadow: none; }
.pc .grain:hover, .pc .grain:focus-visible { transform: scale(1.04); }
.pc .leg__f { transition: none; }
.pc .leg__f.is-on { transition: opacity .3s var(--lame); }
@media (max-width: 700px) {
  .pc .chaine { flex-wrap: wrap; justify-content: center; gap: .9rem; }
  .pc .grain { width: calc(50% - .45rem); }
  .pc .grain + .grain { margin-left: 0; }
}

/* Page Avocats : la même équipe que sur l'accueil, six portraits côte à côte, chacun avec son nom et sa fonction.
   Aucun nom ne change de place, donc rien ne se superpose (remarque de Sarah du 08/10) ; la couleur se révèle au survol. */
.pc .equipe-page { padding: clamp(2.5rem, 6vw, 5rem) 0; border-top: 1px solid var(--rule); }
.pc .membres { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(.75rem, 1.5vw, 1.5rem); }
.pc .membre { display: block; color: inherit; text-decoration: none; }
.pc .membre .carre img { transition: transform .6s var(--lame); }
.pc .membre:hover .carre img, .pc .membre:focus-visible .carre img { transform: scale(1.03); }
.pc .membre__nom { display: block; margin-top: 1rem; font-family: var(--serif); font-size: clamp(1.15rem, .9rem + .7vw, 1.6rem); line-height: 1.15; letter-spacing: -.01em; }
.pc .membre__role { display: block; margin-top: .45rem; font-size: .8125rem; line-height: 1.4; color: var(--ink-55); }
@media (max-width: 1000px) { .pc .membres { grid-template-columns: repeat(3, minmax(0, 1fr)); row-gap: 2rem; } }
@media (max-width: 560px) { .pc .membres { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Lisibilité (13/10, retour d'Elise : textes et petits titres trop petits) */
.pc .prose p, .pc .dossier__body p, .pc .pave__c p { font-size: clamp(1.06rem, 1rem + .35vw, 1.19rem); line-height: 1.7; }
.pc .pc-hero__claim, .pc .lede { font-size: clamp(1.1rem, 1rem + .45vw, 1.3rem); }
html body.pc :is(.case__cat, .cases .case .case__cat, .pagehead__kicker, .link, .btn, .roster__role), .pc .roster__role, .pc .dossier__meta dd, .pc .dossier__meta a, .pc .filters button, .pc .field label, .pc .caveat, .pc .membre__role { font-size: 1rem; }
.pc .foot, .pc .foot address, .pc .foot__ordre, .pc .foot a { font-size: 1rem; }
html body.pc :is(.foot__base, .foot__base a) { font-size: .9375rem; }

/* Lisibilité, second passage (13/10) : fil d'Ariane, rubriques des fiches, repères */
html body.pc :is(.crumb, dt, .dossier__meta dt) { font-size: 1rem; color: var(--fg-70, #625e60); }
html body.pc :is(.dossier__meta dd, .dossier__meta dd a) { font-size: 1.06rem; }
html body.pc .case:has(.case__n) .case__t { font-size: 1.1rem; }
html body.pc .foot h3 { font-size: .9375rem; }
@media (min-width: 1200px) {
  .pc .prose p, .pc .dossier__body p, .pc .pave__c p { font-size: 1.25rem; }
}
html body.pc :is(.nav a, .burger) { font-size: 1rem; }

/* Mise en avant du cabinet (14/10) : gras italique */
html body.pc strong em, html body.pc em strong { font-style: italic; font-weight: 600; }
html body.pc :is(h1, h2, .pc-hero__sig) strong em { font-weight: 700; }
.pc .pc-band--lien { padding-block: clamp(1.5rem, 3vw, 2.5rem); }

/* Citation sur photo : la mise en avant reste en gras italique (14/10) */
html .photo__q strong em, html .photo__q em { font-style: italic; }

/* Citation sur photo : ombre portée douce pour la lisibilité (14/10) */
html .photo__q { text-shadow: 0 1px 2px rgba(0,0,0,.55), 0 2px 18px rgba(0,0,0,.55), 0 0 42px rgba(0,0,0,.35); }

/* Filtres de la page Références (14/10) : pastilles compactes avec le nombre de références,
   détachées de la photo ; sur téléphone, une seule ligne qui défile au doigt */
.pc .filters { display: flex; flex-wrap: wrap; gap: .6rem; margin: clamp(2rem, 4vw, 3rem) 0 1.4rem; padding: 0; border: 0; }
.pc .filters button { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; padding: .55rem 1rem; border: 1px solid var(--rule-strong, rgba(34,31,32,.25)); border-radius: 999px; background: transparent; font-family: var(--sans); font-size: 1rem; letter-spacing: 0; color: var(--ink); text-align: left; white-space: nowrap; transition: background var(--t), border-color var(--t), color var(--t); }
.pc .filters button::after { display: none; }
.pc .filters button:hover { border-color: var(--ink); }
.pc .filters button[aria-pressed='true'] { background: var(--ink); border-color: var(--ink); color: var(--paper, #e5e1de); }
.pc .filters button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.pc .filtre__n { font-size: .8125rem; font-variant-numeric: tabular-nums; opacity: .6; }
.pc .refs-compte { margin: 0 0 1rem; font-size: 1rem; color: var(--ink-55, #6a6567); }
@media (max-width: 760px) {
  .pc .filters { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x proximity; margin-inline: calc(var(--gutter, 1rem) * -1); padding: 0 var(--gutter, 1rem) .4rem; scrollbar-width: none; }
  .pc .filters::-webkit-scrollbar { display: none; }
  .pc .filters button { flex: none; scroll-snap-align: start; }
}
/* Une référence filtrée doit disparaître : l'affichage en grille de .case l'emportait sur [hidden] */
.pc .cases [hidden] { display: none !important; }
@media (max-width: 760px) { .pc .filters { margin-inline: 0; padding: 0 0 .4rem; } }
.pc .bio__titre { margin: 0 0 1rem; font-family: var(--serif); font-size: clamp(1.2rem, 1rem + .6vw, 1.5rem); font-weight: 400; }

/* Pages avocats (14/10, Sarah : « nos têtes coupées ») : portrait calé en haut, sans zoom, tête entière */
.pc .bio .pf img { object-position: 50% 0; transform: none; }
.pc .bio__side .pf:hover img { transform: none; }
.pc .membre .pf img, .pc .face .pf img { object-position: 50% 0; }

/* Audit visuel (14/10) */
/* En-tête identique à l'accueil : même hauteur et même logotype, rien ne saute en passant d'une page à l'autre */
body.pc { --head: 84px; }
.pc .masthead .burger { font-weight: 500; }
@supports ((-webkit-mask-image: url('/assets/images/brand/logotype-cw.svg')) or (mask-image: url('/assets/images/brand/logotype-cw.svg'))) {
  .pc .masthead .wordmark { height: 40px; width: 171px; }
  @media (max-width: 560px) { .pc .masthead .wordmark { height: 32px; width: 137px; } }
}
@media (max-width: 720px) { body.pc { --head: 64px; } }
/* Ouverture des pages Cabinet et Avocats calée sur celle des autres pages intérieures (intitulé et titre à la même hauteur) */
.pc .pc-hero--court { padding-top: clamp(3rem, 7vw, 6.5rem); }
/* Avocats : titre de la même taille que « Nos références », « Nous contacter »… */
.pc .pc-hero--court:has(+ .equipe-page) .pc-hero__sig--md { font-size: clamp(1.85rem, 1.1rem + 2.6vw, 3.15rem); line-height: 1.1; }
/* Page Avocats : les fonctions restent alignées sur une même ligne quand un nom passe sur deux lignes ;
   le nom se coupe entre prénom et nom plutôt qu'au trait d'union */
.pc .membres { grid-auto-rows: auto; }
.pc .membre { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; align-content: start; }
.pc .membre__nom { text-wrap: balance; }
/* Mises en avant en gras italique (Playfair) : elles n'agrandissent plus l'interligne de leur ligne */
.pc .prose :is(strong, em), .pc .pave__c :is(strong, em), .pc .dossier__body :is(strong, em) { line-height: 1; }
/* Fiche avocat : adresse, bouton et LinkedIn sur la même ligne de base */
.pc .bio .actions { align-items: baseline; }
/* Focus clavier visible sur fond sombre : le contour encre disparaissait dans le pied de page et les bandeaux */
.pc .foot :focus-visible, .pc .band--ink :focus-visible, .pc .pc-band--ink :focus-visible, .pc .photo :focus-visible { outline-color: var(--paper); }
/* Champs du formulaire : le focus se lit mieux avec un filet de deux pixels */
.pc .field :is(input, textarea):focus-visible { box-shadow: 0 1px 0 0 var(--ink); }
/* Survol : fil d'Ariane et compétence de la fiche (leur couleur était figée par une règle plus forte) */
html body.pc a.crumb:hover { color: var(--ink); }
.pc .dossier__meta a:hover { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
/* Pied de page entre 721 et 1060 px : deux colonnes sur deux rangs, au lieu de trois colonnes et d'une quatrième seule en dessous */
@media (min-width: 721px) and (max-width: 1060px) { .foot__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Mentions légales : listes de l ancien texte, à la taille du texte courant et avec puces (15/10) */
.pc .prose ul.liste { list-style: disc; margin: 0 0 1.2rem; padding-left: 1.3em; }
.pc .prose ul.liste li { font-size: clamp(1.06rem, 1rem + .35vw, 1.19rem); line-height: 1.7; margin-bottom: .4rem; }
@media (min-width: 1200px) { .pc .prose ul.liste li { font-size: 1.25rem; } }
