/* v3, Revue. Le journal du cabinet, sur papier. */
.rv { --gutter: clamp(1.25rem, 4vw, 5rem); }
html.js .rv [data-reveal] { transform: translate3d(0, 16px, 0); transition-duration: .8s; }
html.js .rv [data-reveal="line"] { transform: scaleX(0); }

/* Bandeau : filet double, comme une une de journal */
.rv .masthead { border-bottom: 3px double var(--rule-strong); background: var(--paper); }
.rv .masthead.is-stuck { background: rgba(229, 225, 222, .94); }
.rv .masthead__date { font-size: .7rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-55); }
@media (max-width: 880px) { .rv .masthead__date { display: none; } }

.rv main { padding-top: var(--head); }
.rv-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 2.6vw, 3rem); }

/* Une : titre à gauche, photo encadrée à droite */
.une { padding: clamp(2.5rem, 6vw, 5.5rem) var(--gutter) clamp(2.5rem, 6vw, 5rem); border-bottom: 1px solid var(--rule); }
.une__t { grid-column: 1 / 8; align-self: end; }
.une__f { grid-column: 8 / 13; }
.une .display { font-size: clamp(2.6rem, 1rem + 5.6vw, 6.6rem); margin-top: 1.2rem; }
.une__sub { font-family: var(--serif); font-style: italic; font-size: clamp(1.15rem, .95rem + 1vw, 1.9rem); line-height: 1.3; color: var(--fg-70); margin-top: 1.4rem; max-width: 30ch; }
.une__claim { margin-top: 2.2rem; max-width: 36rem; color: var(--fg-70); font-size: .98rem; }
.rv .fig { border: 1px solid var(--rule-strong); padding: .55rem; background: var(--paper-high); }
.rv .fig img { aspect-ratio: 4 / 5; object-fit: cover; object-position: center; transform: scale(1.02); }
.rv .fig:hover img { transform: scale(1.06); }
.legende { display: flex; justify-content: space-between; gap: 1rem; margin-top: .75rem; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-55); }
@media (max-width: 900px) { .une__t, .une__f { grid-column: 1 / -1; } .une__f { margin-top: 2.4rem; max-width: 34rem; } }

/* Citations entre les cahiers */
.cit { padding: clamp(3rem, 8vw, 7rem) var(--gutter); text-align: center; border-bottom: 1px solid var(--rule); }
.cit p { font-family: var(--serif); font-style: italic; font-size: clamp(2.2rem, 1rem + 6vw, 7.2rem); line-height: 1.02; letter-spacing: -.024em; text-wrap: balance; margin: 0; }
.cit small { display: block; margin-top: 1.4rem; font-size: .7rem; letter-spacing: .18em; text-transform: uppercase; color: var(--fg-55); font-style: normal; font-family: var(--sans); }

/* Cahiers numérotés : le titre en marge, la matière en colonnes */
.cahier { display: grid; grid-template-columns: minmax(0, 15rem) minmax(0, 1fr); column-gap: clamp(1.5rem, 4vw, 5rem); padding: clamp(2.5rem, 6vw, 5rem) var(--gutter); border-bottom: 1px solid var(--rule); }
.cahier__marge { position: sticky; top: calc(var(--head) + 1.5rem); align-self: start; }
.cahier__n { display: block; font-family: var(--serif); font-size: 2.4rem; line-height: 1; color: var(--fg-38); }
.cahier__t { font-family: var(--serif); font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2.4rem); line-height: 1.08; letter-spacing: -.012em; margin-top: .6rem; }
.trait { display: block; height: 1px; width: 100%; background: var(--fg); margin-top: 1.1rem; }
.colonnes { columns: 2; column-gap: clamp(1.5rem, 3.5vw, 3.5rem); column-rule: 1px solid var(--rule); }
.colonnes p { break-inside: avoid; }
@media (max-width: 900px) { .cahier { grid-template-columns: 1fr; row-gap: 1.6rem; } .cahier__marge { position: static; } .colonnes { columns: 1; } }

/* Engagements, en trois brèves */
.breves { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 3rem); margin-top: 2.4rem; }
.breve { border-top: 2px solid var(--fg); padding-top: 1rem; }
.breve__t { display: block; font-size: .68rem; letter-spacing: .17em; text-transform: uppercase; color: var(--fg-55); }
.breve__d { font-family: var(--serif); font-style: italic; font-size: clamp(1.1rem, .95rem + .7vw, 1.55rem); line-height: 1.3; margin: .85rem 0 0; }
.breve__d strong { font-weight: 600; font-size: 1.14em; }
@media (max-width: 900px) { .breves { grid-template-columns: 1fr; } }

/* Chiffres, en lettrines */
.chiffres { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--rule); border-block: 1px solid var(--rule); margin-top: 2.6rem; }
.chiffre { background: var(--paper); padding: 1.4rem 1.2rem 1.5rem; }
.chiffre b { display: block; font-family: var(--serif); font-weight: 400; font-size: clamp(2.2rem, 1rem + 3vw, 4rem); line-height: 1; letter-spacing: -.02em; }
.chiffre span { display: block; margin-top: .6rem; font-size: .7rem; letter-spacing: .15em; text-transform: uppercase; color: var(--fg-55); }
@media (max-width: 700px) { .chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Matières, en sommaire ; pratiques, en rangées */
.matieres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 clamp(1rem, 3vw, 3rem); }
.matieres li { font-family: var(--serif); font-size: clamp(1.15rem, .95rem + .8vw, 1.7rem); line-height: 1.25; padding: .8rem 0; border-bottom: 1px solid var(--rule); display: flex; gap: .8rem; align-items: baseline; }
.matieres li i { font-family: var(--sans); font-style: normal; font-size: .68rem; letter-spacing: .12em; color: var(--fg-38); min-width: 1.6rem; }
@media (max-width: 900px) { .matieres { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .matieres { grid-template-columns: 1fr; } }
.pratiques { margin-top: 2.6rem; border-top: 1px solid var(--rule); }
.pratique { display: grid; grid-template-columns: minmax(0, 18rem) minmax(0, 1fr) 2rem; gap: clamp(1rem, 3vw, 3rem); align-items: start; padding: clamp(1.4rem, 3vw, 2.2rem) 0; border-bottom: 1px solid var(--rule); transition: background var(--t); }
.pratique__t { font-family: var(--serif); font-size: clamp(1.3rem, 1rem + 1.1vw, 2rem); line-height: 1.1; text-decoration: underline; text-decoration-color: transparent; text-decoration-thickness: 2px; text-underline-offset: .18em; transition: text-decoration-color var(--t); }
.pratique:hover .pratique__t { text-decoration-color: var(--yellow); }
.pratique__d { font-size: .95rem; color: var(--fg-70); margin: 0; }
.pratique .arrow { color: var(--fg-38); font-size: 1.3rem; justify-self: end; }
@media (max-width: 760px) { .pratique { grid-template-columns: 1fr; gap: .6rem; } .pratique .arrow { display: none; } }

/* Secteurs, en liste courante */
.secteurs { font-family: var(--serif); font-size: clamp(1.05rem, .95rem + .5vw, 1.4rem); line-height: 1.7; color: var(--fg-70); margin-top: 2rem; }
.secteurs .bar { opacity: .35; margin-inline: .38em; }

/* Les avocats : grille de six fiches */
.equipe { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.25rem, 3vw, 3rem) clamp(1rem, 2.6vw, 2.5rem); }
.fiche { display: block; }
.fiche .pf { border: 1px solid var(--rule-strong); }
.fiche .pf img { transition: transform 1.4s var(--ease-out); }
.fiche:hover .pf img { transform: scale(1.04); }
.fiche__b { padding-top: 1rem; border-top: 1px solid var(--fg); margin-top: 1rem; }
.fiche__nom { display: block; font-family: var(--serif); font-size: clamp(1.15rem, 1rem + .7vw, 1.6rem); line-height: 1.1; }
.fiche__role { display: block; margin-top: .4rem; font-size: .68rem; letter-spacing: .15em; text-transform: uppercase; color: var(--fg-55); }
@media (max-width: 900px) { .equipe { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Les affaires : tableau */
.table { width: 100%; border-collapse: collapse; margin-top: .5rem; }
.table th { text-align: left; font-size: .66rem; letter-spacing: .16em; text-transform: uppercase; color: var(--fg-55); font-weight: 500; padding: .8rem 0; border-bottom: 2px solid var(--fg); }
.table td { padding: 1.05rem 0; border-bottom: 1px solid var(--rule); vertical-align: baseline; }
.table td + td, .table th + th { padding-left: clamp(1rem, 2.5vw, 2.5rem); }
.table .n { font-family: var(--serif); color: var(--fg-38); width: 3rem; }
.table .cat { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; color: var(--fg-55); width: 16rem; }
.table .t { font-family: var(--serif); font-size: clamp(1rem, .95rem + .35vw, 1.3rem); line-height: 1.35; }
.table tr { transition: background var(--t); }
.table tbody tr:hover { background: var(--paper-high); }
.table tbody tr:hover .t { text-decoration: underline; text-decoration-color: var(--yellow); text-decoration-thickness: 2px; text-underline-offset: .2em; }
@media (max-width: 760px) {
  .table thead { display: none; }
  .table tr { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); padding: 1rem 0; border-bottom: 1px solid var(--rule); }
  .table td { display: block; padding: 0; border: 0; }
  .table td + td { padding-left: 0; }
  .table .n { grid-row: 1 / 3; }
  .table .cat { width: auto; grid-column: 2; margin-bottom: .35rem; }
  .table .t { grid-column: 2; }
}

/* Revendications, cahier sur fond encre */
.cahier--ink { background: var(--ink); color: var(--paper); border-bottom-color: var(--rule); }
.cahier--ink .cahier__n { color: rgba(229, 225, 222, .4); }
.cahier--ink .trait { background: var(--paper); }
.cahier--ink .colonnes { column-rule-color: rgba(229, 225, 222, .18); }
.cahier--ink p { color: rgba(229, 225, 222, .8); font-size: clamp(1rem, .94rem + .35vw, 1.2rem); line-height: 1.55; }
.cahier--ink .cle { font-weight: 600; font-style: italic; color: var(--yellow); }

/* Contact */
.contact { padding: clamp(3rem, 7vw, 6rem) var(--gutter); border-bottom: 1px solid var(--rule); }
.contact__t { grid-column: 1 / 8; }
.contact__c { grid-column: 9 / 13; font-size: .95rem; color: var(--fg-70); line-height: 1.8; align-self: end; }
.contact__c a:hover { text-decoration: underline; text-decoration-color: var(--yellow); }
.contact .h-lg { font-style: italic; max-width: 22ch; }
.contact .btn { margin-top: 2rem; }
@media (max-width: 900px) { .contact__t, .contact__c { grid-column: 1 / -1; } .contact__c { margin-top: 2rem; } }

.rv .foot { border-top: 3px double var(--rule-strong); }
.rv .foot__base .autres { color: var(--fg-70); }
.rv .foot__base .autres:hover { color: var(--fg); text-decoration: underline; text-decoration-color: var(--yellow); }
