/* Pavel business — modèle « dossier » : doubles pages, folios, têtes courantes. Blanc, noir, cobalt. Aucune ressource externe. */

:root {
	--paper: #ffffff; --paper-2: #f4f4f1; --ink: #0f0f0f; --ink-2: #4a4a4a; --muted: #7d7d7d; --rule: #dedede;
	--blue: #1f3bff; --blue-deep: #1428b8; --blue-soft: #e9ecff;
	--sans: "Helvetica Neue", Helvetica, Arial, "Segoe UI", system-ui, sans-serif;
	--pad: clamp(1.6rem, 4vw, 4rem);
	--head-h: 64px;
	--head-top: 0px; /* hauteur de la barre d'administration WordPress, mesurée en JS */
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 17px; line-height: 1.55; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; }
body.nav-open { overflow: hidden; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--ink); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
a:hover { color: var(--blue); }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
h1, h2, h3 { font-weight: 700; letter-spacing: -.025em; line-height: 1.04; margin: 0 0 .5em; }
h1 { font-size: clamp(2.4rem, 5.2vw, 4.4rem); }
h2 { font-size: clamp(1.7rem, 3vw, 2.5rem); }
h3 { font-size: 1.2rem; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.2em; }
.small { font-size: .86rem; color: var(--ink-2); }
.muted { color: var(--muted); }
.sr { position: absolute; left: -9999px; }
.skip { position: absolute; left: -999px; top: 0; background: var(--blue); color: #fff; padding: .5em 1em; z-index: 100; }
.skip:focus { left: 8px; }
.lead { font-size: 1.12rem; color: var(--ink-2); max-width: 60ch; }
.eyebrow { font-size: .74rem; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); font-weight: 700; margin: 0 0 .9rem; }
.button { display: inline-block; background: var(--ink); color: #fff; border: 1.5px solid var(--ink); padding: .85em 1.5em; font-weight: 700; text-decoration: none; font-size: .92rem; line-height: 1.2; cursor: pointer; font-family: inherit; transition: background .15s, border-color .15s, color .15s; }
.button:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
.button-light { background: #fff; color: var(--ink); border-color: #fff; }
.button-light:hover { background: var(--blue); border-color: var(--blue); color: #fff; }
.link-arrow { font-weight: 700; text-decoration: none; }
.link-arrow::after { content: "\2192"; margin-left: .4em; transition: margin .15s; }
.link-arrow:hover::after { margin-left: .7em; }
.link-arrow.light { color: #fff; }
.link-arrow.light:hover { color: var(--blue-soft); }

/* ---- Masthead + sommaire plein écran ------------------------------------ */
.masthead { position: sticky; top: var(--head-top); z-index: 40; background: var(--paper); border-bottom: 2px solid var(--ink); }
.masthead-inner { display: flex; align-items: center; gap: 1.5rem; height: var(--head-h); padding: 0 var(--pad); position: relative; z-index: 2; background: var(--paper); }
.brand { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; color: var(--ink); }
.brand .mark { color: var(--ink); flex: none; }
.brand:hover .mark { color: var(--blue); }
.brand-name { font-weight: 700; letter-spacing: -.02em; font-size: 1.15rem; }
.brand-sub { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-left: .6rem; }
.page-counter { margin-left: auto; font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); font-variant-numeric: tabular-nums; }
.menu-toggle { display: inline-flex; align-items: center; gap: .6rem; height: 42px; padding: 0 .9rem; background: var(--ink); color: #fff; border: 1.5px solid var(--ink); cursor: pointer; font: inherit; font-weight: 700; font-size: .88rem; letter-spacing: .02em; }
.menu-toggle:hover { background: var(--blue); border-color: var(--blue); }
.menu-toggle[aria-expanded="true"] { background: var(--paper); color: var(--ink); }
.mt-icon { flex: none; }
.primary-nav { display: none; position: fixed; top: var(--head-top); left: 0; right: 0; bottom: 0; background: var(--paper); z-index: 60; overflow: auto; padding: 0 var(--pad) var(--pad); }
.nav-bar { display: flex; align-items: center; justify-content: space-between; height: var(--head-h); margin: 0 calc(-1 * var(--pad)) 2rem; padding: 0 var(--pad); border-bottom: 2px solid var(--ink); background: var(--paper); position: sticky; top: 0; }
.nav-close { background: var(--ink); color: #fff; border: 1.5px solid var(--ink); height: 42px; padding: 0 .9rem; font: inherit; font-weight: 700; font-size: .88rem; cursor: pointer; }
.nav-close:hover { background: var(--blue); border-color: var(--blue); }
.primary-nav.is-open { display: block; }
.nav-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: 2rem; max-width: 1400px; margin: 0 auto; }
.nav-col ul { list-style: none; padding: 0; margin: 0; }
.nav-col li a { display: grid; grid-template-columns: 36px 1fr; gap: .5rem; padding: .55rem 0; border-bottom: 1px solid var(--rule); text-decoration: none; font-size: 1.05rem; font-weight: 600; }
.nav-col li a span { color: var(--blue); font-variant-numeric: tabular-nums; }
.nav-col li a:hover { color: var(--blue); }
.nav-h { font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); font-weight: 700; margin: 0 0 .6rem; }
.nav-mail { display: block; font-size: 1.15rem; font-weight: 700; text-decoration: none; margin-bottom: .4rem; word-break: break-all; }
.nav-contact .button { margin-top: .6rem; }
@media (max-width: 900px) { .nav-cols { grid-template-columns: 1fr; } .brand-sub { display: none; } .page-counter { display: none; } }

/* ---- Pages et doubles pages ---------------------------------------------- */
.spread { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - var(--head-h)); border-top: 2px solid var(--ink); }
.page { position: relative; padding: calc(var(--pad) + 1.2rem) var(--pad) calc(var(--pad) + 1rem); }
.page-left { border-right: 1px solid var(--rule); }
.running { position: absolute; top: 1rem; left: var(--pad); font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.page-right .running { left: auto; right: var(--pad); }
.folio { position: absolute; bottom: 1rem; left: var(--pad); font-size: .74rem; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
.page-right .folio { left: auto; right: var(--pad); }
.page-photo { position: absolute; inset: 0; }
.page:has(> .page-photo) { padding: 0; }
.page-photo .photo.fill, .photo.fill { width: 100%; height: 100%; aspect-ratio: auto !important; }
.page-caption { position: absolute; left: var(--pad); bottom: 2.6rem; background: var(--paper); padding: .35em .7em; font-size: .78rem; font-weight: 600; }
.page-dark { background: var(--ink); color: #fff; margin: calc(-1 * (var(--pad) + 1.2rem)) calc(-1 * var(--pad)) calc(-1 * (var(--pad) + 1rem)); padding: calc(var(--pad) + 1.2rem) var(--pad) calc(var(--pad) + 1rem); min-height: 100%; }
.page-dark h2 { color: #fff; }
.page-dark p { color: #d4d4d4; max-width: 50ch; }
.page-dark .eyebrow { color: #9fb0ff; }
.spread-contact .page-left { border-right: 0; }
.spread-contact .page-left .running, .spread-contact .page-left .folio { color: #fff; z-index: 1; }
.page-split { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-bottom: 1.5rem; }
.photo { margin: 0; overflow: hidden; background: var(--paper-2); position: relative; }
.photo img { width: 100%; height: 100%; object-fit: cover; }
.photo.inset { margin-top: 1.5rem; }
.ph-tag { position: absolute; left: 10px; top: 10px; background: var(--blue); color: #fff; font-size: .68rem; padding: .25em .55em; font-weight: 700; letter-spacing: .04em; }
.photo-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; align-items: start; }
.photo-pair .photo:nth-child(2) { margin-top: 3rem; }
.big-no { display: block; font-size: 5rem; font-weight: 700; letter-spacing: -.06em; line-height: .9; color: var(--blue); margin-bottom: 1rem; }
@media (max-width: 860px) {
	.spread { grid-template-columns: 1fr; min-height: 0; }
	.page-left { border-right: 0; border-bottom: 1px solid var(--rule); }
	.page:has(> .page-photo) { min-height: 56vw; }
	.page-photo { position: relative; inset: auto; }
	.page-photo .photo.fill { aspect-ratio: 3/2 !important; }
	.page-split { grid-template-columns: 1fr; }
}

/* ---- Couverture (accueil) ------------------------------------------------ */
.cover-page { display: grid; grid-template-columns: 1.1fr 1fr; min-height: calc(100vh - var(--head-h)); background: var(--ink); color: #fff; }
.cover-text { position: relative; padding: calc(var(--pad) + 1.2rem) var(--pad) calc(var(--pad) + 1rem); display: flex; flex-direction: column; justify-content: center; }
.cover-text .running { color: #9fb0ff; }
.cover-text h1 { color: #fff; max-width: 14ch; font-size: clamp(2.8rem, 6.4vw, 6rem); }
.cover-sub { color: #d4d4d4; max-width: 52ch; font-size: 1.08rem; }
.cover-actions { display: flex; gap: 1.5rem; align-items: center; flex-wrap: wrap; margin: 1.2rem 0 0; }
.cover-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin: 2.5rem 0 0; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.2); }
.cover-facts dt { font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: #9fb0ff; }
.cover-facts dd { margin: .2rem 0 0; font-weight: 700; font-size: .95rem; }
.cover-text .folio { color: #fff; }
.cover-photo { position: relative; }
.cover-photo .photo { position: absolute; inset: 0; }
.cover-caption { position: absolute; left: var(--pad); bottom: 2.6rem; margin: 0; background: var(--paper); color: var(--ink); padding: .4em .8em; font-size: .82rem; }
.cover-photo .folio { color: var(--ink); background: var(--paper); padding: .1em .4em; }
@media (max-width: 860px) { .cover-page { grid-template-columns: 1fr; } .cover-photo { min-height: 70vw; } .cover-facts { grid-template-columns: 1fr 1fr; } }

/* ---- Table des matières ---------------------------------------------------- */
.toc { list-style: none; padding: 0; margin: 0; }
.toc li { border-bottom: 1px solid var(--rule); }
.toc a { display: flex; align-items: baseline; gap: .8rem; padding: .6rem 0; text-decoration: none; font-size: .98rem; }
.toc a:hover .toc-title { color: var(--blue); }
.toc-no { color: var(--blue); font-weight: 700; font-variant-numeric: tabular-nums; width: 2.2em; flex: none; }
.toc-title { font-weight: 600; }
.toc-dots { flex: 1; border-bottom: 1px dotted var(--muted); transform: translateY(-.35em); margin: 0 .2rem; }
.toc-meta { color: var(--ink-2); font-size: .82rem; white-space: nowrap; }

/* ---- Chapitres --------------------------------------------------------------- */
.chapter { display: grid; grid-template-columns: 1fr 1fr; min-height: 70vh; background: var(--ink); color: #fff; border-top: 2px solid var(--ink); }
.chapter-text { position: relative; padding: calc(var(--pad) + 1.2rem) var(--pad) calc(var(--pad) + 1rem); display: flex; flex-direction: column; justify-content: center; }
.chapter-text .running { color: #9fb0ff; }
.ch-no { font-size: clamp(4rem, 10vw, 9rem); font-weight: 700; letter-spacing: -.06em; line-height: .85; color: var(--blue); }
.chapter h2 { color: #fff; margin-top: 1rem; font-size: clamp(2rem, 4vw, 3.4rem); }
.chapter p { color: #d4d4d4; max-width: 52ch; font-size: 1.05rem; }
.chapter-text .folio { color: #fff; }
.chapter-photo { position: relative; }
.chapter-photo .photo { position: absolute; inset: 0; }
.chapter-photo .folio { color: var(--ink); background: var(--paper); padding: .1em .4em; }
@media (max-width: 860px) { .chapter { grid-template-columns: 1fr; } .chapter-photo { min-height: 60vw; } }

/* ---- Ouverture d'une fiche de service ------------------------------------ */
.service-opener { display: grid; grid-template-columns: 1fr 1fr; min-height: calc(100vh - var(--head-h)); border-top: 2px solid var(--ink); }
.so-photo { position: relative; }
.so-photo .photo { position: absolute; inset: 0; }
.so-photo .folio { background: var(--paper); padding: .1em .4em; }
.so-text { position: relative; padding: calc(var(--pad) + 1.2rem) var(--pad) calc(var(--pad) + 1rem); display: grid; grid-template-columns: 180px 1fr; gap: 2rem; align-content: center; align-items: start; }
.so-cover { box-shadow: 0 24px 40px -26px rgba(0,0,0,.5); }
.so-text h1 { grid-column: 2; font-size: clamp(2rem, 3.8vw, 3.2rem); }
.so-text .lead, .so-text .cover-actions { grid-column: 2; }
.so-text .running { grid-column: 1 / -1; }
.so-text .folio { right: var(--pad); left: auto; }
@media (max-width: 860px) { .service-opener { grid-template-columns: 1fr; } .so-photo { min-height: 60vw; } .so-text { grid-template-columns: 1fr; } .so-cover { max-width: 200px; } .so-text h1, .so-text .lead, .so-text .cover-actions { grid-column: 1; } }

/* ---- Liste des services (page de droite) ---------------------------------- */
.svc-list { list-style: none; padding: 0; margin: 1.5rem 0 0; border-top: 2px solid var(--ink); }
.svc-list li { border-bottom: 1px solid var(--rule); }
.svc-list a { display: grid; grid-template-columns: 48px 1fr auto; gap: 1rem; align-items: baseline; padding: .9rem 0; text-decoration: none; }
.svc-list a:hover { background: var(--blue-soft); }
.sl-no { font-weight: 700; color: var(--blue); font-size: 1.3rem; letter-spacing: -.03em; }
.sl-body strong { display: block; }
.sl-body span { display: block; color: var(--ink-2); font-size: .86rem; }
.sl-price { font-size: .82rem; color: var(--ink-2); white-space: nowrap; }

/* ---- Rayonnage horizontal ---------------------------------------------------- */
.shelf-wrap { border-top: 2px solid var(--ink); padding: 2rem 0 2.5rem; background: var(--paper-2); position: relative; }
.shelf-head { padding: 0 var(--pad) 1.2rem; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.shelf-head .running { position: static; }
.shelf-head p { margin: 0; color: var(--ink-2); font-size: .9rem; }
.shelf { display: flex; gap: 1.2rem; overflow-x: auto; scroll-snap-type: x mandatory; padding: 1rem var(--pad) 1.6rem; perspective: 1400px; scrollbar-width: thin; }
.shelf .cover-card { flex: 0 0 clamp(220px, 22vw, 300px); scroll-snap-align: start; }
.shelf-end { flex: 0 0 260px; display: flex; flex-direction: column; justify-content: center; gap: 1rem; padding-left: 1rem; scroll-snap-align: start; }
.cover-card { position: relative; display: block; aspect-ratio: 3 / 4; text-decoration: none; color: var(--ink); transform-style: preserve-3d; transition: transform .55s cubic-bezier(.2,.7,.2,1); }
.cover-face, .cover-back { position: absolute; inset: 0; backface-visibility: hidden; }
.cover-face { box-shadow: 0 1px 0 rgba(0,0,0,.06), 0 14px 30px -16px rgba(0,0,0,.4); }
.cover-back { transform: rotateY(180deg); background: var(--ink); color: #fff; padding: 1.1rem 1.1rem 1rem; display: flex; flex-direction: column; overflow: hidden; }
.cover-card:hover, .cover-card:focus-visible { transform: rotateY(180deg); }
.cover { width: 100%; height: 100%; }
.cv-bg { fill: var(--paper); stroke: var(--ink); stroke-width: 3; }
.cv-kicker { font-family: var(--sans); font-size: 11px; letter-spacing: 1.5px; font-weight: 700; fill: var(--blue); }
.cv-no { font-family: var(--sans); font-size: 120px; font-weight: 700; letter-spacing: -8px; fill: var(--ink); }
.cv-title { font-family: var(--sans); font-size: 27px; font-weight: 700; letter-spacing: -1px; fill: var(--ink); }
.cv-rule { stroke: var(--ink); stroke-width: 2; }
.cv-meta { font-family: var(--sans); font-size: 13px; fill: var(--ink-2); }
.cv-foot { font-family: var(--sans); font-size: 10px; letter-spacing: 1px; fill: var(--muted); }
.cover-card:nth-child(even) .cv-bg { fill: var(--blue); }
.cover-card:nth-child(even) .cv-no, .cover-card:nth-child(even) .cv-title, .cover-card:nth-child(even) .cv-kicker { fill: #fff; }
.cover-card:nth-child(even) .cv-meta, .cover-card:nth-child(even) .cv-foot { fill: rgba(255,255,255,.8); }
.cover-card:nth-child(even) .cv-rule { stroke: #fff; }
.cc-kicker { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: #9fb0ff; margin: 0 0 .5rem; font-weight: 700; }
.cover-back h3 { font-size: 1.1rem; color: #fff; margin-bottom: .4rem; }
.cc-short { font-size: .8rem; color: #d8d8d8; margin-bottom: .8rem; }
.cc-meta { margin: 0; font-size: .72rem; line-height: 1.4; flex: 1; }
.cc-meta dt { color: #9fb0ff; text-transform: uppercase; letter-spacing: .08em; font-size: .6rem; margin-top: .4rem; }
.cc-meta dd { margin: 0; color: #f0f0f0; }
.cc-link { margin-top: .6rem; font-weight: 700; color: #fff; font-size: .85rem; }
.cc-link::after { content: " \2192"; }
@media (prefers-reduced-motion: reduce) { .cover-card { transition: none; } }

/* ---- Cahier ------------------------------------------------------------------ */
.sample { display: grid; grid-template-columns: 180px 1fr; gap: 1.6rem; align-items: start; }
.sample-cover-wrap { box-shadow: 0 16px 30px -18px rgba(0,0,0,.45); }
.sample-cover { width: 100%; }
.sp-bg { fill: var(--paper-2); stroke: var(--ink); stroke-width: 2; }
.sp-kicker { font-family: var(--sans); font-size: 11px; letter-spacing: 1.5px; font-weight: 700; fill: var(--blue); }
.sp-service { font-family: var(--sans); font-size: 12px; letter-spacing: 1px; font-weight: 700; fill: var(--muted); }
.sp-rule { stroke: var(--blue); stroke-width: 2; }
.sp-title { font-family: var(--sans); font-size: 20px; font-weight: 700; letter-spacing: -.5px; fill: var(--ink); }
.sp-meta { font-family: var(--sans); font-size: 12px; fill: var(--ink-2); }
.sm-no { font-weight: 700; color: var(--blue); }
.sample-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.sample-row .sample-cover:nth-child(2) { transform: translateY(2rem); }
@media (max-width: 560px) { .sample { grid-template-columns: 1fr; } .sample-cover-wrap { max-width: 200px; } }

/* ---- Démonstration --------------------------------------------------------- */
.demo { border: 2px solid var(--ink); background: var(--paper); }
.demo-bar { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .7rem 1.2rem; border-bottom: 1px solid var(--rule); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; font-weight: 700; }
.demo-toggle { background: none; border: 1.5px solid var(--ink); font: inherit; font-size: .74rem; padding: .4em .8em; cursor: pointer; text-transform: none; letter-spacing: 0; }
.demo-toggle:hover { background: var(--ink); color: #fff; }
.demo-text { padding: 1.2rem 1.4rem; margin: 0; font-size: 1.02rem; line-height: 1.75; }
.demo-before { border-bottom: 1px solid var(--rule); color: var(--ink-2); }
.demo-label { display: block; font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .4rem; font-weight: 700; }
.demo del { color: #b02a2a; text-decoration: line-through; text-decoration-thickness: 2px; background: #fdecec; }
.demo ins { color: var(--blue-deep); text-decoration: none; background: var(--blue-soft); border-bottom: 2px solid var(--blue); }
.demo.is-clean del { display: none; }
.demo.is-clean ins { background: none; border-bottom: 0; color: var(--ink); }
.demo-notes { margin: 0; padding: 1rem 1.4rem 1rem 2.6rem; border-top: 1px solid var(--rule); font-size: .86rem; color: var(--ink-2); background: var(--paper-2); }
.demo .small { padding: .8rem 1.4rem 1rem; margin: 0; }

/* ---- Listes, méthode, engagements, glossaire ------------------------------- */
.check, .excl, .plain, .cases, .notes-list { list-style: none; padding: 0; }
.check li, .excl li { position: relative; padding: .4em 0 .4em 1.6em; }
.check li::before { content: ""; position: absolute; left: 0; top: .95em; width: 10px; height: 10px; background: var(--blue); }
.check.big li { font-size: 1.02rem; padding: .7em 0 .7em 1.8em; border-bottom: 1px solid var(--rule); }
.excl li { color: var(--ink-2); }
.excl li::before { content: "\2014"; position: absolute; left: 0; top: .4em; color: var(--muted); }
.plain li { padding: .6em 0; border-bottom: 1px solid var(--rule); }
.cases { border-top: 2px solid var(--ink); }
.cases li { padding: 1rem 0; border-bottom: 1px solid var(--rule); }
.cases strong { display: block; margin-bottom: .3rem; }
.cases p { margin: 0; color: var(--ink-2); font-size: .95rem; }
.method { list-style: none; padding: 0; margin: 0; }
.method li { display: grid; grid-template-columns: 64px 1fr; gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--rule); }
.method li:first-child { border-top: 2px solid var(--ink); }
.m-no { font-size: 1.7rem; font-weight: 700; color: var(--blue); letter-spacing: -.04em; line-height: 1; }
.method h3 { margin-bottom: .3em; }
.method p { color: var(--ink-2); margin: 0; }
.method.compact li { padding: .7rem 0; }
.method.compact h3 { font-size: 1rem; margin: 0; }
.engagements { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--ink); border-left: 1px solid var(--rule); }
.engagements.single { grid-template-columns: 1fr; border-left: 0; }
.engagement { padding: 1.4rem 1.2rem 1.6rem; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.engagements.single .engagement { border-right: 0; padding-left: 0; }
.en-no { font-size: .78rem; font-weight: 700; color: var(--blue); letter-spacing: .1em; display: block; margin-bottom: .6rem; }
.engagement p { font-size: .93rem; color: var(--ink-2); margin: 0; }
.glossary dt, .def-list dt { font-weight: 700; margin-top: 1rem; }
.glossary dd, .def-list dd { margin: .2rem 0 0; color: var(--ink-2); font-size: .93rem; }
.faq dt { font-weight: 700; font-size: 1.05rem; margin-top: 1.4rem; }
.faq dd { margin: .4rem 0 0; color: var(--ink-2); }
.notes-list li { border-bottom: 1px solid var(--rule); }
.notes-list a { display: block; padding: .9rem 0; text-decoration: none; }
.note-date { display: block; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.notes-list strong { display: block; font-size: 1.15rem; }
.notes-list span:not(.note-date) { color: var(--ink-2); font-size: .92rem; }
.note-title { font-size: clamp(2rem, 4vw, 3rem); }
.prose { max-width: 66ch; }
.prose img { margin: 1.5rem 0; }
.meta-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; border-top: 2px solid var(--ink); padding-top: 1rem; margin: 1.5rem 0 0; }
.meta-strip dt { font-size: .66rem; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.meta-strip dd { margin: .2rem 0 0; font-weight: 700; font-size: .95rem; }
.meta-strip dd small { display: block; font-weight: 400; color: var(--ink-2); font-size: .78rem; }
.about-facts { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1.5rem; border-top: 2px solid var(--ink); padding-top: 1.2rem; margin-top: 1.5rem; font-size: .93rem; }
.about-facts dt { color: var(--muted); }
.about-facts dd { margin: 0; }

/* ---- Tarifs, estimateur, encadré ------------------------------------------- */
.grid-table { width: 100%; border-collapse: collapse; font-size: .9rem; border-top: 2px solid var(--ink); }
.grid-table th, .grid-table td { text-align: left; padding: .7em .8em .7em 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.grid-table th { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.grid-table td:first-child { color: var(--blue); font-weight: 700; width: 3em; }
.estimator { border: 2px solid var(--ink); background: var(--paper); padding: 1.4rem; margin-top: 1rem; }
.est-row { display: grid; grid-template-columns: 140px 1fr; gap: 1rem; align-items: center; margin-bottom: .9rem; }
.est-row label { font-weight: 700; font-size: .88rem; }
.estimator select, .estimator input { width: 100%; font: inherit; padding: .65em .8em; border: 1.5px solid var(--ink); background: #fff; color: var(--ink); }
.est-result { border-top: 2px solid var(--ink); margin-top: 1.1rem; padding-top: 1.1rem; }
.est-label { display: block; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.est-result strong { display: block; font-size: 2.4rem; letter-spacing: -.04em; line-height: 1.1; color: var(--blue); margin: .2rem 0; }
.est-detail { font-size: .86rem; color: var(--ink-2); display: block; }
.service-aside { border: 2px solid var(--ink); padding: 1.5rem; background: var(--paper); }
.as-label { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-bottom: .2rem; }
.as-price { color: var(--ink-2); margin: 0 0 .4rem; }
.as-price strong { display: block; font-size: 2.6rem; letter-spacing: -.04em; line-height: 1; color: var(--ink); margin: .1rem 0; }
.as-price span { font-size: .85rem; display: block; }
.as-rate { font-size: .85rem; font-weight: 600; margin: 0 0 .4rem; }
.as-note { font-size: .82rem; color: var(--ink-2); border-bottom: 1px solid var(--rule); padding-bottom: 1rem; }
.service-aside dl { margin: 0 0 1.3rem; font-size: .9rem; }
.service-aside dt { font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; color: var(--muted); margin-top: .6rem; }
.service-aside dd { margin: 0; }
.service-aside .button { width: 100%; text-align: center; }
.as-mail, .as-link { display: block; text-align: center; margin-top: .7rem; font-size: .88rem; }
@media (max-width: 860px) { .est-row { grid-template-columns: 1fr; gap: .3rem; } .grid-table { display: block; overflow: auto; } }

/* ---- Formulaire --------------------------------------------------------------- */
.form .field { margin: 0 0 1rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.form label { display: block; margin-bottom: .35rem; font-size: .88rem; font-weight: 700; }
.form input[type="text"], .form input[type="email"], .form input[type="tel"], .form select, .form textarea { width: 100%; background: #fff; border: 1.5px solid var(--ink); color: var(--ink); font: inherit; padding: .7em .8em; }
.form input:focus, .form select:focus, .form textarea:focus { outline: 2px solid var(--blue); outline-offset: 1px; }
.form .field-hp { position: absolute; left: -9999px; }
.checkbox { display: grid; grid-template-columns: 22px 1fr; gap: .7rem; align-items: start; font-size: .86rem; font-weight: 400; color: var(--ink-2); }
.checkbox input { width: 18px; height: 18px; margin-top: .2em; accent-color: var(--blue); }
.field-submit { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.field-hint { color: var(--muted); font-size: .86rem; }
.notice { padding: 1em 1.2em; border: 2px solid var(--ink); margin-bottom: 1.5rem; }
.notice-bad { border-color: #b02a2a; }
.col-dl { margin: 0; font-size: .9rem; }
.col-dl dt { font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); margin-top: .6rem; }
.col-dl dt:first-child { margin-top: 0; }
.col-dl dd { margin: 0; }
.col-dl a { text-decoration: none; }
@media (max-width: 700px) { .field-row { grid-template-columns: 1fr; gap: 0; } }

/* ---- Colophon (double page finale) -------------------------------------------- */
.colophon { display: grid; grid-template-columns: 1fr 1fr; border-top: 2px solid var(--ink); background: var(--paper-2); }
.colophon .page { min-height: 60vh; }
.col-intro { color: var(--ink-2); font-size: .95rem; max-width: 44ch; margin: 1.2rem 0 1.6rem; }
.col-cols { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 1.5rem; }
.col-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; font-size: .9rem; }
.col-links a { text-decoration: none; display: flex; gap: .6rem; }
.col-links span { color: var(--blue); font-weight: 700; font-variant-numeric: tabular-nums; }
.col-links a:hover { color: var(--blue); }
.col-bar { margin: 2.5rem 0 0; padding-top: 1rem; border-top: 1px solid var(--rule); font-size: .8rem; color: var(--ink-2); }
@media (max-width: 860px) { .colophon { grid-template-columns: 1fr; } .colophon .page { min-height: 0; } .col-cols { grid-template-columns: 1fr; } }

/* ---- Documents juridiques ---------------------------------------------------- */
.policy h2 { font-size: 1.6rem; margin-top: 2rem; }
.policy h3 { font-size: 1.05rem; margin-top: 1.6rem; }
.business-block { border: 2px solid var(--ink); padding: 1.3rem; margin: 0 0 2rem; }
.business-block h2 { margin: 0 0 .8rem; font-size: 1.05rem; }
.business-block dl { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1.2rem; margin: 0; font-size: .88rem; }
.business-block dt { color: var(--muted); }
.business-block dd { margin: 0; }
.price-table { width: 100%; border-collapse: collapse; font-size: .88rem; margin: 1rem 0 1.5rem; border-top: 2px solid var(--ink); }
.price-table th, .price-table td { text-align: left; padding: .5em .6em .5em 0; border-bottom: 1px solid var(--rule); vertical-align: top; }
.price-table th { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.policy-index { margin-top: 3rem; padding-top: 1.2rem; border-top: 2px solid var(--ink); }
.policy-index h3 { font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.policy-index ul { list-style: none; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.5rem; }
@media (max-width: 560px) { .business-block dl { grid-template-columns: 1fr; } .price-table { display: block; overflow: auto; } }
