.page-family { background: var(--wa-night-900); }
.wa-breadcrumb { width: min(100% - 2.75rem, var(--wa-container)); margin: 0 auto; padding-top: 1.25rem; }
.wa-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .35rem .7rem; margin: 0; padding: 0; list-style: none; }
.wa-breadcrumb li { color: #8293af; font-family: var(--wa-font-mono); font-size: .66rem; letter-spacing: .04em; }
.wa-breadcrumb li:not(:last-child)::after { content: "/"; margin-left: .7rem; color: var(--wa-cyan); }
.wa-breadcrumb a { text-underline-offset: .25em; }

.page-hero { position: relative; overflow: clip; padding: clamp(4rem, 8vw, 8.5rem) 0 var(--wa-space-8); background: radial-gradient(circle at 78% 28%, var(--wa-glow-blue), transparent 27rem), var(--wa-night-900); }
.page-hero::after { content: ""; position: absolute; inset: auto -5% 1.5rem 18%; height: 1px; background: linear-gradient(90deg, transparent, var(--wa-violet), var(--wa-blue), var(--wa-cyan), transparent); transform: rotate(-1.8deg); opacity: .75; }
.page-hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .95fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.page-hero h1 { max-width: 14ch; margin-bottom: 1.5rem; }
.page-hero__proof { position: relative; min-height: clamp(22rem, 42vw, 35rem); }
.page-hero__proof .wa-window { position: absolute; inset: 0 0 8% 8%; }
.page-hero__proof .wa-window img { object-fit: contain; object-position: top; background: #eef3f9; }
.page-hero__proof .wa-tech-note { position: absolute; z-index: 2; right: 0; bottom: 0; max-width: 19rem; box-shadow: 0 1.2rem 3rem rgb(0 0 0 / 35%); }
.page-hero__meta { display: flex; flex-wrap: wrap; gap: .5rem 1.1rem; margin-top: 2rem; color: #91a1bb; font-size: .76rem; }
.page-hero__meta span { padding-left: .9rem; border-left: 1px solid var(--wa-cyan); }

.page-intro-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 8vw, 8rem); }
.page-lines { border-top: 1px solid currentColor; }
.page-line { display: grid; grid-template-columns: 3rem minmax(10rem, .8fr) 1.2fr; gap: 1.25rem; padding: 1.35rem 0; border-bottom: 1px solid color-mix(in srgb, currentColor 18%, transparent); }
.page-line__number { color: var(--wa-cyan); font: 500 .68rem/1.5 var(--wa-font-mono); }
.page-line h3, .page-line p { margin: 0; }
.page-line p { color: inherit; opacity: .72; font-size: .9rem; }

.page-proof { overflow: clip; }
.page-proof__stage { position: relative; margin-top: var(--wa-space-6); }
.page-proof__image { width: min(100%, 68rem); margin-left: auto; box-shadow: 0 2rem 5rem rgb(0 0 0 / 18%); }
.page-proof__note { position: relative; z-index: 2; width: min(26rem, 88%); margin: clamp(-7rem, -9vw, -4rem) 0 0 3%; padding: 2rem; background: var(--wa-night-850); color: var(--wa-text); box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 30%); }
.page-proof__note h3 { font-size: var(--wa-step-2); }

.page-scope { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--wa-line-light); border: 1px solid var(--wa-line-light); }
.page-scope > article { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--wa-cold-50); }
.page-scope ul { padding-left: 1.2rem; }
.page-scope li { margin-block: .65rem; }

.page-timeline { counter-reset: step; border-top: var(--wa-border); }
.page-timeline > li { counter-increment: step; display: grid; grid-template-columns: 4rem .8fr 1.2fr; gap: 1.5rem; padding: 1.5rem 0; border-bottom: var(--wa-border); list-style: none; }
.page-timeline > li::before { content: "0" counter(step); color: var(--wa-cyan); font: 500 .68rem/1.5 var(--wa-font-mono); }
.page-timeline strong { font-size: 1.02rem; }
.page-timeline span { color: var(--wa-muted); }

.page-faq details { border-top: var(--wa-border); }
.page-faq details:last-child { border-bottom: var(--wa-border); }
.page-faq summary { min-height: 4rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; cursor: pointer; font-weight: 650; }
.page-faq summary::after { content: "+"; color: var(--wa-cyan); font-family: var(--wa-font-mono); }
.page-faq details[open] summary::after { content: "−"; }
.page-faq details p { max-width: 48rem; margin-top: 0; color: var(--wa-muted); }

.page-contact { overflow: hidden; background: radial-gradient(circle at 75% 50%, var(--wa-glow-violet), transparent 25rem), var(--wa-night-950); }
.page-contact__grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3rem; align-items: center; }
.page-contact__actions { display: grid; gap: .8rem; }

/* Variantes d’entrée : une logique par intention, sans template imposé */
.identity-hero { position: relative; overflow: clip; padding: clamp(3.5rem, 7vw, 7rem) 0 var(--wa-space-8); background: radial-gradient(circle at 76% 28%, rgb(138 77 255 / 24%), transparent 30rem), linear-gradient(135deg, var(--wa-night-900), #100a29); }
.identity-hero::after { content: ""; position: absolute; inset: auto -8% 2rem 36%; height: 2px; background: var(--wa-ribbon); transform: rotate(-2deg); opacity: .72; }
.identity-hero__grid { display: grid; grid-template-columns: minmax(0, .82fr) minmax(26rem, 1.18fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; }
.identity-hero__copy { position: relative; z-index: 2; }
.identity-hero h1 { font-size: clamp(2.35rem, 3.4vw, 3.65rem); max-width: 17ch; }
.identity-hero__media { position: relative; min-height: clamp(28rem, 48vw, 40rem); margin: 0; }
.identity-hero__cover { position: absolute; inset: 7% 0 24% 0; }
.identity-hero__cover img { width: 100%; height: 100%; object-fit: cover; }
.identity-hero__avatar { position: absolute; right: 4%; bottom: 0; width: 32%; aspect-ratio: 1; object-fit: cover; border: 1px solid rgb(197 169 255 / 55%); box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 38%); }
.identity-hero__media .wa-tech-note { position: absolute; z-index: 3; left: 3%; bottom: 4%; max-width: 23rem; }

.diagnostic-hero { position: relative; overflow: clip; padding: 3.5rem 0 var(--wa-space-7); background: radial-gradient(circle at 74% 35%, rgb(24 215 232 / 13%), transparent 26rem), linear-gradient(145deg, var(--wa-night-900), #061728); }
.diagnostic-hero::before { content: ""; position: absolute; inset: 15% 0 auto 52%; height: 16rem; opacity: .2; background: repeating-radial-gradient(circle at 50% 50%, transparent 0 2rem, var(--wa-cyan) 2.04rem 2.08rem); }
.diagnostic-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(22rem, .9fr); gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.diagnostic-hero h1 { max-width: 18ch; font-size: clamp(2.35rem, 3.4vw, 3.55rem); }
.diagnostic-hero__panel { position: relative; padding: clamp(1.5rem, 4vw, 3rem); background: rgb(5 11 29 / 88%); border: 1px solid #31556d; box-shadow: 0 2rem 5rem rgb(0 0 0 / 28%); }
.diagnostic-hero__panel ul { margin: 1.5rem 0; padding: 0; list-style: none; }
.diagnostic-hero__panel li { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 1rem 0; border-top: 1px solid #254355; }
.diagnostic-hero__panel li:last-child { border-bottom: 1px solid #254355; }
.diagnostic-hero__panel span { color: var(--wa-muted); font-size: .86rem; }
.diagnostic-hero__warning { margin-bottom: 0; padding-left: 1rem; border-left: 2px solid var(--wa-cyan); color: #bfeaf0; font-size: .78rem; }

.problem-hero { position: relative; overflow: clip; padding: clamp(4rem, 8vw, 8rem) 0 var(--wa-space-8); background: linear-gradient(145deg, var(--wa-night-900), #07152a); }
.problem-hero::after { content: ""; position: absolute; width: 46rem; aspect-ratio: 1; right: -20rem; bottom: -30rem; border: 1px solid rgb(24 215 232 / 16%); border-radius: 50%; box-shadow: 0 0 0 5rem rgb(24 215 232 / 3%), 0 0 0 10rem rgb(47 125 255 / 3%); }
.problem-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr); gap: clamp(3rem, 9vw, 9rem); align-items: end; }
.problem-hero h1 { max-width: 17ch; font-size: var(--wa-step-4); }
.problem-hero__answer { padding: clamp(1.5rem, 4vw, 3rem); background: var(--wa-cold-50); color: var(--wa-ink); border-top: 3px solid var(--wa-cyan); }
.problem-hero__answer strong { display: block; margin: 1rem 0; font-size: var(--wa-step-2); line-height: 1.22; }
.problem-hero__answer p:last-child { color: var(--wa-muted-dark); }

.case-hero { overflow: clip; padding: 3.5rem 0 var(--wa-space-8); background: radial-gradient(circle at 75% 18%, var(--wa-glow-blue), transparent 28rem), var(--wa-night-900); }
.case-hero__copy { display: grid; grid-template-columns: 1.12fr .88fr; gap: clamp(3rem, 8vw, 8rem); align-items: end; margin-bottom: var(--wa-space-6); }
.case-hero h1 { max-width: 21ch; font-size: clamp(2.4rem, 3.6vw, 3.8rem); }
.case-hero__stage { position: relative; width: min(100% - 2.75rem, 86rem); margin-inline: auto; padding-bottom: 2rem; }
.case-hero__desktop { width: calc(100% - 8rem); height: auto; object-fit: contain; object-position: top; clip-path: polygon(0 0, 94% 0, 100% 7%, 100% 100%, 6% 100%, 0 93%); box-shadow: 0 3rem 8rem rgb(0 0 0 / 42%); }
.case-hero__mobile { position: absolute; right: 0; bottom: 0; width: clamp(11rem, 22vw, 18rem); height: auto; object-fit: contain; object-position: top; border: .5rem solid var(--wa-night-800); background: var(--wa-night-800); box-shadow: 0 2rem 5rem rgb(0 0 0 / 48%); }
.case-hero__stage .wa-tech-note { position: absolute; left: 2rem; bottom: 2rem; max-width: 25rem; }

.identity-proof__grid { display: grid; grid-template-columns: 1.45fr .55fr; gap: 1rem; align-items: stretch; }
.identity-proof figure { margin: 0; background: var(--wa-night-850); color: var(--wa-text); }
.identity-proof figure img { width: 100%; height: 22rem; object-fit: cover; }
.identity-proof figure:last-child img { object-fit: contain; background: var(--wa-night-900); }
.identity-proof figcaption { display: grid; gap: .55rem; padding: 1.25rem; }
.identity-proof__context { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 1rem; border: 1px solid var(--wa-line-light); }
.identity-proof__context > div { padding: 1.25rem; border-right: 1px solid var(--wa-line-light); }
.identity-proof__context > div:last-child { border-right: 0; }
.identity-proof__context p { margin-bottom: 0; font-size: .86rem; color: var(--wa-muted-dark); }

.wifi-bands { padding-top: 0; }
.wifi-bands__grid { display: grid; grid-template-columns: repeat(3, 1fr); border: var(--wa-border); }
.wifi-bands__grid article { padding: clamp(1.5rem, 3vw, 2.5rem); border-right: var(--wa-border); }
.wifi-bands__grid article:last-child { border-right: 0; }
.wifi-bands__grid p { color: var(--wa-muted); }
.wifi-bands__note, .wifi-source { margin: 1.25rem 0 0; padding: 1rem 1.25rem; border-left: 2px solid var(--wa-cyan); }
.wifi-source { grid-column: 2; color: var(--wa-muted-dark); }
.wifi-source a { color: #125acc; text-underline-offset: .2em; }

.case-scope__grid { display: grid; grid-template-columns: repeat(4, 1fr); border: var(--wa-border); }
.case-scope__grid article { padding: clamp(1.5rem, 3vw, 2.5rem); border-right: var(--wa-border); }
.case-scope__grid article:last-child { border-right: 0; }
.case-scope__grid p { color: var(--wa-muted); font-size: .88rem; }
.case-scope .case-no-metrics { margin-top: 1rem; }

/* Identité & communication */
.page-family--identity { --family-accent: var(--wa-violet); }
.page-family--identity .page-hero { background: radial-gradient(circle at 80% 25%, rgb(138 77 255 / 25%), transparent 28rem), linear-gradient(135deg, var(--wa-night-900), #100b2b); }
.identity-collage { position: relative; min-height: 33rem; }
.identity-collage img { position: absolute; object-fit: cover; box-shadow: 0 1.5rem 4rem rgb(0 0 0 / 35%); }
.identity-collage img:first-child { inset: 0 12% 13% 0; width: 78%; height: 78%; clip-path: polygon(0 0, 86% 0, 100% 16%, 100% 100%, 12% 100%, 0 88%); }
.identity-collage img:last-child { right: 0; bottom: 0; width: 48%; height: 45%; border: 1px solid rgb(197 169 255 / 45%); }
.identity-uses { display: grid; grid-template-columns: 1.1fr .9fr .9fr; gap: 1px; border: 1px solid var(--wa-line-light); background: var(--wa-line-light); }
.identity-uses a { min-height: 17rem; display: flex; flex-direction: column; justify-content: space-between; padding: 2rem; background: var(--wa-cold-50); color: var(--wa-ink); text-decoration: none; }
.identity-uses a:first-child { background: linear-gradient(145deg, #170f3b, var(--wa-night-800)); color: var(--wa-white); }
.identity-uses a:hover { box-shadow: inset 0 3px 0 var(--wa-violet); }
.identity-formats { display: grid; grid-template-columns: .8fr 1.2fr; gap: 1px; background: #5a3e89; }
.identity-formats > * { padding: clamp(2rem, 5vw, 5rem); background: var(--wa-night-850); }
.identity-formats__list { display: grid; align-content: center; gap: 1rem; }
.identity-formats__list span { padding-bottom: .8rem; border-bottom: 1px solid #4b396a; }

/* Informatique */
.page-family--it { --family-accent: var(--wa-cyan); }
.page-family--it .page-hero { background: radial-gradient(circle at 80% 25%, rgb(24 215 232 / 18%), transparent 26rem), linear-gradient(135deg, var(--wa-night-900), #061728); }
.symptom-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--wa-line); }
.symptom-grid a { min-height: 9rem; padding: 1.5rem; border-right: var(--wa-border); border-bottom: var(--wa-border); text-decoration: none; }
.symptom-grid a:nth-child(2n) { border-right: 0; }
.symptom-grid a:hover { background: rgb(24 215 232 / 6%); }
.it-diagnostic { display: grid; grid-template-columns: .8fr 1.2fr; gap: 5rem; align-items: start; }
.it-callout { border-left: 3px solid var(--wa-cyan); padding: 1.5rem; background: rgb(24 215 232 / 6%); }
.preview-form { padding: clamp(1.5rem, 4vw, 3rem); background: var(--wa-night-800); border: var(--wa-border); }
.wa-form-status { padding: .9rem 1rem; border-left: 2px solid var(--wa-cyan); background: rgb(24 215 232 / 7%); color: #cbeef2; }

/* Problème → solution */
.page-family--problem .page-hero { padding-bottom: var(--wa-space-7); }
.answer-strip { padding: clamp(1.5rem, 4vw, 3rem); background: var(--wa-cold-50); color: var(--wa-ink); border-left: .3rem solid var(--wa-cyan); }
.answer-strip strong { display: block; margin-bottom: .8rem; font-size: var(--wa-step-2); }
.check-steps { counter-reset: check; margin: 0; padding: 0; }
.check-steps > li { counter-increment: check; display: grid; grid-template-columns: 4rem 1fr; gap: 1rem; padding: 1.5rem 0; border-top: var(--wa-border); list-style: none; }
.check-steps > li::before { content: "0" counter(check); color: var(--wa-cyan); font: 500 .7rem/1.5 var(--wa-font-mono); }
.check-steps h3 { margin-bottom: .5rem; }
.check-steps p { margin: 0; color: var(--wa-muted); }
.warning-box { padding: 1.5rem; border: 1px solid #8d6070; background: rgb(255 111 145 / 7%); }
.solution-table { width: 100%; border-collapse: collapse; }
.solution-table th, .solution-table td { padding: 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--wa-line-light); }
.solution-table th { font-family: var(--wa-font-mono); font-size: .68rem; text-transform: uppercase; letter-spacing: .08em; }

/* Étude de cas */
.page-family--case .page-hero { padding-bottom: 3rem; }
.case-stage { padding-bottom: var(--wa-space-8); }
.case-stage__image { width: min(100% - 2.75rem, 86rem); margin: 0 auto; box-shadow: 0 3rem 8rem rgb(0 0 0 / 42%); }
.case-facts { display: grid; grid-template-columns: repeat(4, 1fr); border: var(--wa-border); border-bottom: 0; }
.case-facts > div { min-height: 7rem; padding: 1.3rem; border-right: var(--wa-border); border-bottom: var(--wa-border); }
.case-facts > div:last-child { border-right: 0; }
.case-facts dt { margin-bottom: .5rem; color: var(--wa-cyan); font: 500 .65rem/1.5 var(--wa-font-mono); text-transform: uppercase; letter-spacing: .08em; }
.case-facts dd { margin: 0; }
.case-decision { display: grid; grid-template-columns: .65fr 1.35fr; gap: 5rem; align-items: start; }
.case-detail { position: relative; }
.case-detail img { width: 100%; }
.case-detail .wa-tech-note { width: min(24rem, 80%); margin: -3rem 0 0 auto; position: relative; }
.case-no-metrics { padding: 1rem 1.25rem; border: var(--wa-border); color: var(--wa-muted); font-size: .85rem; }

/* Conseil */
.page-family--article { background: var(--wa-cold-50); color: var(--wa-ink); }
.article-hero { padding: clamp(4rem, 8vw, 8rem) 0 var(--wa-space-7); background: var(--wa-night-900); color: var(--wa-text); }
.article-hero h1 { max-width: 18ch; }
.article-byline { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--wa-muted); font-size: .8rem; }
.article-layout { display: grid; grid-template-columns: 17rem minmax(0, var(--wa-reading)); justify-content: center; gap: clamp(3rem, 7vw, 7rem); padding-block: var(--wa-space-7); }
.article-toc { position: sticky; top: 2rem; align-self: start; padding: 1.3rem 0; border-top: 2px solid var(--wa-blue); border-bottom: 1px solid var(--wa-line-light); }
.article-toc strong { font: 500 .68rem/1.5 var(--wa-font-mono); text-transform: uppercase; letter-spacing: .08em; }
.article-toc a { display: block; margin-top: .75rem; color: var(--wa-muted-dark); font-size: .8rem; text-decoration: none; }
.article-toc a:hover { color: var(--wa-blue); }
.wa-article-body { font-size: 1.05rem; line-height: 1.8; }
.wa-article-body h2 { margin-top: 3.5rem; font-size: var(--wa-step-2); scroll-margin-top: 2rem; }
.wa-article-body ul { padding-left: 1.35rem; }
.wa-article-body li { margin-block: .55rem; }
.wa-article-lead { margin-top: 0; font-size: var(--wa-step-1); line-height: 1.55; }
.wa-article-summary, .wa-article-checklist { margin-block: 2.5rem; padding: 1.5rem; background: var(--wa-cold-100); border-left: 3px solid var(--wa-blue); }
.wa-article-summary strong { font-family: var(--wa-font-mono); font-size: .75rem; text-transform: uppercase; }
.wa-article-checklist h2 { margin-top: 0; }
.wa-article-sources { margin-top: 3.5rem; padding-top: 1rem; border-top: 1px solid var(--wa-line-light); font-size: .86rem; }
.wa-inline-cta { display: inline-flex; min-height: 2.75rem; align-items: center; color: #125acc; font-weight: 700; text-underline-offset: .25em; }

@media (max-width: 64rem) {
  .page-hero__grid, .identity-hero__grid, .diagnostic-hero__grid, .problem-hero__grid, .case-hero__copy, .page-intro-grid, .page-contact__grid, .it-diagnostic, .identity-formats, .case-decision { grid-template-columns: 1fr; }
  .page-hero__proof { min-height: 28rem; }
  .page-hero__proof .wa-window { inset: 0 5% 6% 0; }
  .identity-hero__media { min-height: 31rem; }
  .diagnostic-hero__grid, .problem-hero__grid { gap: 3rem; }
  .diagnostic-hero__panel { max-width: 42rem; }
  .case-hero__copy { gap: 1rem; }
  .identity-proof__context, .case-scope__grid { grid-template-columns: 1fr 1fr; }
  .identity-proof__context > div:nth-child(2), .case-scope__grid article:nth-child(2) { border-right: 0; }
  .identity-proof__context > div:nth-child(-n+2), .case-scope__grid article:nth-child(-n+2) { border-bottom: 1px solid var(--wa-line-light); }
  .wifi-bands__grid { grid-template-columns: 1fr; }
  .wifi-bands__grid article { border-right: 0; border-bottom: var(--wa-border); }
  .wifi-bands__grid article:last-child { border-bottom: 0; }
  .page-scope { grid-template-columns: 1fr; }
  .page-timeline > li { grid-template-columns: 3rem 1fr; }
  .page-timeline > li span { grid-column: 2; }
  .identity-uses { grid-template-columns: 1fr 1fr; }
  .identity-uses a:first-child { grid-row: span 2; }
  .it-diagnostic { gap: 3rem; }
  .case-facts { grid-template-columns: 1fr 1fr; }
  .case-facts > div:nth-child(2) { border-right: 0; }
  .article-layout { grid-template-columns: minmax(0, var(--wa-reading)); }
  .article-toc { position: static; }
}

@media (max-width: 47rem) {
  .wa-breadcrumb { width: min(100% - 2.25rem, var(--wa-container)); }
  .page-hero { padding-top: 3rem; }
  .page-hero h1, .identity-hero h1, .diagnostic-hero h1, .problem-hero h1, .case-hero h1, .article-hero h1 { font-size: clamp(1.95rem, 8.6vw, 2.4rem); line-height: 1.06; }
  .page-hero__grid { gap: 2.5rem; }
  .page-hero__proof, .identity-collage { min-height: 20rem; }
  .page-hero__proof .wa-tech-note { right: .6rem; }
  .page-hero__meta { display: grid; }
  .identity-hero, .diagnostic-hero, .problem-hero, .case-hero { padding-top: 3rem; }
  .identity-hero__grid { gap: 2.5rem; }
  .identity-hero__media { min-height: 21rem; }
  .identity-hero__cover { inset: 0 0 24% 0; }
  .identity-hero__avatar { width: 38%; }
  .identity-hero__media .wa-tech-note { left: .5rem; bottom: 0; max-width: 76%; }
  .diagnostic-hero__panel li { grid-template-columns: 1fr; gap: .25rem; }
  .problem-hero__grid { gap: 2.25rem; }
  .problem-hero__answer { padding: 1.35rem; }
  .case-hero__stage { width: min(100% - 2.25rem, 86rem); padding-bottom: 1.5rem; }
  .case-hero__desktop { width: calc(100% - 3rem); height: auto; }
  .case-hero__mobile { width: clamp(6.5rem, 27vw, 8.5rem); }
  .case-hero__stage .wa-tech-note { left: .5rem; bottom: .5rem; max-width: 68%; }
  .identity-proof__grid, .identity-proof__context, .case-scope__grid { grid-template-columns: 1fr; }
  .identity-proof figure img { height: auto; max-height: 22rem; }
  .identity-proof__context > div, .identity-proof__context > div:nth-child(2), .case-scope__grid article, .case-scope__grid article:nth-child(2) { border-right: 0; border-bottom: 1px solid var(--wa-line-light); }
  .identity-proof__context > div:last-child, .case-scope__grid article:last-child { border-bottom: 0; }
  .wifi-source { grid-column: auto; }
  .page-line { grid-template-columns: 2rem 1fr; }
  .page-line p { grid-column: 2; }
  .page-proof__note { margin-top: -2rem; }
  .identity-uses, .symptom-grid { grid-template-columns: 1fr; }
  .identity-uses a, .identity-uses a:first-child { min-height: 12rem; grid-row: auto; }
  .symptom-grid a, .symptom-grid a:nth-child(2n) { border-right: 0; }
  .solution-table { display: block; overflow-x: auto; }
  .case-facts { grid-template-columns: 1fr; }
  .case-facts > div { border-right: 0; }
  .case-decision { gap: 2.5rem; }
  .article-layout { display: block; padding-inline: 1.125rem; }
  .article-toc { margin-bottom: 2.5rem; }
}

/* P0 — hubs, services spécialisés et pages fonctionnelles */
.p0-hub-hero, .p0-signal-hero, .legal-hero { position: relative; overflow: hidden; background: var(--wa-night-950); color: var(--wa-white); }
.p0-hub-hero::before, .p0-signal-hero::before { content: ""; position: absolute; width: 34rem; height: 34rem; border-radius: 50%; background: rgba(42, 96, 246, .1); filter: blur(5rem); pointer-events: none; }
.p0-hub-hero::before { top: -18rem; right: -8rem; }
.p0-signal-hero::before { right: 12%; bottom: -22rem; background: rgba(42, 214, 238, .08); }
.p0-hub-hero__grid, .p0-signal-hero__grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(21rem, .95fr); gap: clamp(3rem, 7vw, 7rem); align-items: center; min-height: 40rem; padding-block: clamp(4rem, 8vw, 8rem); }
.p0-hub-hero h1, .p0-signal-hero h1 { max-width: 18ch; font-size: clamp(2.8rem, 4.6vw, 4.75rem); line-height: 1; letter-spacing: -.05em; }
.p0-hub-hero .wa-lead, .p0-signal-hero .wa-lead { max-width: 43rem; }
.p0-hub-hero__aside { min-width: 0; }
.p0-project-stack { position: relative; min-height: 30rem; }
.p0-project-stack img { position: absolute; width: 82%; aspect-ratio: 16/10; object-fit: contain; object-position: top; background: #091329; border: 1px solid rgba(168, 186, 231, .22); box-shadow: var(--wa-shadow-lg); }
.p0-project-stack img:first-child { top: 0; left: 0; clip-path: polygon(0 0, 100% 0, 100% 84%, 88% 100%, 0 100%); z-index: 2; }
.p0-project-stack img:nth-child(2) { right: 0; bottom: 1.5rem; }
.p0-project-stack .wa-tech-note { position: absolute; right: 0; bottom: 0; z-index: 3; max-width: 21rem; }
.p0-signal-hero__panel { border-top: 1px solid rgba(42, 214, 238, .5); border-bottom: 1px solid rgba(168, 186, 231, .16); background: linear-gradient(135deg, rgba(22, 32, 67, .9), rgba(7, 14, 34, .65)); box-shadow: var(--wa-shadow-md); }
.p0-signal-hero__panel > p { padding: 1.1rem 1.25rem; }
.p0-signal-hero__panel > div { display: grid; grid-template-columns: 7rem 1fr; gap: 1rem; padding: 1rem 1.25rem; border-top: 1px solid rgba(168, 186, 231, .13); }
.p0-signal-hero__panel span { color: var(--wa-muted-light); font-size: .88rem; }

.choice-paths { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--wa-line-light); border-left: 1px solid var(--wa-line-light); }
.choice-paths a { position: relative; min-height: 15rem; padding: clamp(1.5rem, 3vw, 2.5rem); border-right: 1px solid var(--wa-line-light); border-bottom: 1px solid var(--wa-line-light); color: inherit; text-decoration: none; }
.choice-paths a:hover { background: #fff; }
.choice-paths span, .foundation-grid span, .network-scope span { color: #1261d5; font: 500 .68rem/1.4 var(--wa-font-mono); letter-spacing: .08em; text-transform: uppercase; }
.choice-paths h3 { max-width: 20ch; margin-top: 2.5rem; }
.choice-paths p { max-width: 39rem; }

.proof-pair { display: grid; grid-template-columns: 1.2fr .8fr; gap: 1rem; }
.proof-pair a { position: relative; min-height: 29rem; overflow: hidden; color: var(--wa-white); background: var(--wa-night-950); text-decoration: none; }
.proof-pair img { width: 100%; height: 100%; object-fit: contain; object-position: top; background: #091329; transition: transform var(--wa-duration-slow) var(--wa-ease); }
.proof-pair a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(4, 9, 25, .92)); }
.proof-pair strong { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 1; font-size: var(--wa-step-1); }
.proof-pair a:hover img { transform: scale(1.025); }

.migration-board, .foundation-grid, .network-scope { display: grid; grid-template-columns: repeat(2, 1fr); border-top: var(--wa-border); border-left: var(--wa-border); }
.migration-board > div, .foundation-grid article, .network-scope article { min-height: 14rem; padding: clamp(1.4rem, 3vw, 2.2rem); border-right: var(--wa-border); border-bottom: var(--wa-border); }
.migration-board strong { display: block; margin-bottom: 2rem; color: var(--wa-cyan); font: 500 .75rem/1.4 var(--wa-font-mono); text-transform: uppercase; }
.foundation-grid { border-color: var(--wa-line-light); }
.foundation-grid article { border-color: var(--wa-line-light); }
.foundation-grid h3, .network-scope h3 { margin-top: 2.25rem; }
.local-rule, .network-warning, .human-difference, .contact-prep, .diagnostic-form-grid, .about-method { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.local-rule__path { display: grid; grid-template-columns: 6rem 1fr; border-top: var(--wa-border); }
.local-rule__path > * { padding-block: 1rem; border-bottom: var(--wa-border); }
.local-rule__path span { color: var(--wa-cyan); font: 500 .67rem/1.5 var(--wa-font-mono); text-transform: uppercase; }

.network-scope { border-color: var(--wa-line-light); }
.network-scope article { border-color: var(--wa-line-light); }
.network-warning ul, .contact-prep ul { margin-top: 0; padding-left: 1.25rem; }
.network-warning li, .contact-prep li { margin-bottom: .75rem; }

.project-ledger { border-top: 1px solid var(--wa-line-light); }
.project-ledger__item { display: grid; grid-template-columns: minmax(18rem, 1.05fr) minmax(18rem, .95fr); gap: clamp(2rem, 6vw, 6rem); align-items: center; padding-block: clamp(2rem, 5vw, 4.5rem); border-bottom: 1px solid var(--wa-line-light); }
.project-ledger__item:nth-child(even) .project-ledger__image { order: 2; }
.project-ledger__image { display: block; overflow: hidden; background: var(--wa-night-950); }
.project-ledger__image img { width: 100%; height: auto; object-fit: contain; object-position: top; background: #091329; transition: transform var(--wa-duration-slow) var(--wa-ease); }
.project-ledger__image:hover img { transform: scale(1.025); }
.project-ledger__item h3 { margin-block: .7rem; font-size: var(--wa-step-2); }

.topic-index, .contact-route { display: grid; border-top: var(--wa-border); }
.topic-index > *, .contact-route > * { padding: 1rem; border-bottom: var(--wa-border); }
.topic-index a { color: var(--wa-white); text-decoration-color: var(--wa-cyan); text-underline-offset: .3em; }
.topic-index span, .contact-route span { color: var(--wa-cyan); font: 500 .68rem/1.4 var(--wa-font-mono); text-transform: uppercase; }
.advice-list { border-top: 1px solid var(--wa-line-light); }
.advice-list article { display: grid; grid-template-columns: 12rem minmax(0, 1fr) minmax(15rem, .7fr); gap: 2rem; align-items: start; padding-block: clamp(2rem, 5vw, 4rem); border-bottom: 1px solid var(--wa-line-light); scroll-margin-top: 2rem; }
.advice-list h2 { margin: 0; font-size: var(--wa-step-2); }
.advice-list p { margin-top: 0; }

.portrait-placeholder { position: relative; min-height: 28rem; overflow: hidden; border: 1px solid rgba(168, 186, 231, .18); background: linear-gradient(145deg, rgba(30, 43, 83, .92), rgba(9, 17, 40, .7)); }
.portrait-placeholder span { position: absolute; width: 10rem; height: 10rem; left: 50%; top: 42%; border-radius: 50%; background: #152a57; transform: translate(-50%, -50%); }
.portrait-placeholder span::after { content: ""; position: absolute; width: 18rem; height: 13rem; left: 50%; top: 8rem; border-radius: 50% 50% 0 0; background: #152a57; transform: translateX(-50%); }
.portrait-placeholder .wa-tech-note { position: absolute; left: 1.5rem; right: 1.5rem; bottom: 1.5rem; z-index: 2; }
.human-difference__compare { border-top: var(--wa-border); }
.human-difference__compare article { padding: 1.5rem 0; border-bottom: var(--wa-border); }

.contact-route { grid-template-columns: 8rem 1fr; }
.wa-form select { width: 100%; min-height: 3rem; padding: .75rem; color: var(--wa-white); background: #0d1731; border: 1px solid rgba(168, 186, 231, .3); }
.wa-check label { display: grid; grid-template-columns: 1.2rem 1fr; gap: .7rem; align-items: start; }
.wa-check input { width: 1.1rem; height: 1.1rem; margin-top: .15rem; }

.legal-hero { padding-block: clamp(4rem, 8vw, 7rem); }
.legal-hero h1 { font-size: clamp(2.5rem, 4.5vw, 4.4rem); }
.legal-hero .wa-lead { max-width: 50rem; }
.legal-content { padding-block: clamp(3rem, 7vw, 7rem); color: var(--wa-ink); }
.legal-content section { display: grid; grid-template-columns: minmax(13rem, .7fr) minmax(0, 1.3fr); gap: 2rem; padding-block: 2rem; border-top: 1px solid var(--wa-line-light); }
.legal-content section > :not(h2) { grid-column: 2; }
.legal-content h2 { grid-row: 1 / span 8; margin: 0; font-size: var(--wa-step-1); }
.legal-content p, .legal-content address, .legal-content ul { margin-top: 0; line-height: 1.75; }
.article-layout--single { grid-template-columns: minmax(0, var(--wa-reading)); }

@media (max-width: 64rem) {
  .p0-hub-hero__grid, .p0-signal-hero__grid, .local-rule, .network-warning, .human-difference, .contact-prep, .diagnostic-form-grid, .about-method { grid-template-columns: 1fr; }
  .p0-hub-hero__grid, .p0-signal-hero__grid { min-height: 0; }
  .p0-hub-hero__aside, .p0-signal-hero__panel { max-width: 46rem; }
  .advice-list article { grid-template-columns: 9rem 1fr; }
  .advice-list article p, .advice-list article .wa-inline-cta { grid-column: 2; }
}

@media (max-width: 47rem) {
  .p0-hub-hero__grid, .p0-signal-hero__grid { width: min(100% - 2.25rem, var(--wa-container)); padding-block: 3rem 4rem; gap: 2.5rem; }
  .p0-hub-hero h1, .p0-signal-hero h1, .legal-hero h1 { font-size: clamp(1.95rem, 8.6vw, 2.4rem); line-height: 1.06; }
  .p0-project-stack { min-height: 20rem; }
  .p0-project-stack img { width: 88%; }
  .p0-project-stack .wa-tech-note { max-width: 74%; }
  .p0-signal-hero__panel > div { grid-template-columns: 1fr; gap: .25rem; }
  .choice-paths, .proof-pair, .migration-board, .foundation-grid, .network-scope { grid-template-columns: 1fr; }
  .choice-paths a { min-height: 12rem; }
  .proof-pair a { min-height: 21rem; }
  .project-ledger__item { grid-template-columns: 1fr; gap: 1.5rem; }
  .project-ledger__item:nth-child(even) .project-ledger__image { order: initial; }
  .advice-list article { grid-template-columns: 1fr; gap: 1rem; }
  .advice-list article p, .advice-list article .wa-inline-cta { grid-column: auto; }
  .legal-hero .wa-container, .legal-content { width: min(100% - 2.25rem, var(--wa-container)); }
  .legal-content section { grid-template-columns: 1fr; }
  .legal-content section > :not(h2), .legal-content h2 { grid-column: auto; grid-row: auto; }
}
/* P1 — variations driven by intent, not a cloned page shell */
.p1-service-hero { position:relative; overflow:clip; padding:clamp(3.5rem,7vw,7rem) 0 var(--wa-space-8); background:radial-gradient(circle at 78% 26%,rgb(47 125 255 / 14%),transparent 28rem),var(--wa-night-900); }
.p1-service-hero::after { content:""; position:absolute; left:52%; right:-8%; bottom:2.5rem; height:2px; background:var(--wa-ribbon); transform:rotate(-2deg); opacity:.65; }
.p1-service-hero__grid { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1.1fr) minmax(22rem,.9fr); gap:clamp(3rem,8vw,8rem); align-items:center; }
.p1-service-hero h1 { max-width:19ch; font-size:clamp(2.4rem,3.7vw,3.85rem); }
.p1-service-hero__aside { padding:clamp(1.5rem,4vw,3rem); border:1px solid #31556d; background:rgb(5 11 29 / 82%); box-shadow:var(--wa-shadow-lg); }
.p1-service-hero__aside strong { display:block; margin:1rem 0; font-size:var(--wa-step-2); line-height:1.22; }
.p1-identity-stage { position:relative; min-width:0; margin:0; }
.p1-identity-stage .wa-window { transform:rotate(1.5deg); box-shadow:0 2rem 6rem rgb(0 0 0 / 38%); }
.p1-identity-stage img { width:100%; aspect-ratio:16/10; object-fit:cover; }
.p1-identity-stage .wa-tech-note { width:min(25rem,85%); margin:-2.5rem 0 0 auto; position:relative; }
.p1-brand-proof,.p1-case-focus { display:grid; grid-template-columns:.82fr 1.18fr; gap:clamp(3rem,7vw,7rem); align-items:center; }
.p1-brand-proof figure,.p1-case-focus figure { margin:0; }
.p1-brand-proof img,.p1-case-focus img { width:100%; box-shadow:var(--wa-shadow-md); }
.p1-brand-proof figcaption,.p1-case-focus figcaption { margin-top:1rem; color:var(--wa-muted); font-size:.82rem; }
.p1-zone-grid { display:grid; grid-template-columns:1.2fr 1fr .8fr; border:var(--wa-border); }
.p1-zone-grid article { padding:clamp(1.5rem,3vw,2.6rem); border-right:var(--wa-border); }
.p1-zone-grid article:last-child { border-right:0; }
.p1-case-hero { overflow:clip; padding:clamp(3.5rem,7vw,7rem) 0 0; background:radial-gradient(circle at 80% 20%,var(--wa-glow-blue),transparent 30rem),var(--wa-night-900); }
.p1-case-hero__copy { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(3rem,8vw,8rem); align-items:end; padding-bottom:var(--wa-space-6); }
.p1-case-hero h1 { max-width:19ch; font-size:clamp(2.5rem,4vw,4.2rem); }
.p1-case-hero dl { display:grid; grid-template-columns:1fr 1fr; margin:2rem 0 0; border-top:var(--wa-border); }
.p1-case-hero dl div { padding:1rem 1rem 0 0; }
.p1-case-hero dt { color:var(--wa-cyan); font:500 .65rem/1.5 var(--wa-font-mono); text-transform:uppercase; letter-spacing:.08em; }
.p1-case-hero dd { margin:.35rem 0 0; }
.p1-case-hero__media { width:min(100% - 2.75rem,86rem); margin:0 auto; clip-path:polygon(0 0,95% 0,100% 9%,100% 100%,5% 100%,0 91%); box-shadow:0 3rem 8rem rgb(0 0 0 / 42%); }
.p1-case-hero__media img { width:100%; display:block; }

@media (max-width:64rem) {
  .p1-service-hero__grid,.p1-brand-proof,.p1-case-focus,.p1-case-hero__copy { grid-template-columns:1fr; }
  .p1-zone-grid { grid-template-columns:1fr; }
  .p1-zone-grid article { border-right:0; border-bottom:var(--wa-border); }
  .p1-zone-grid article:last-child { border-bottom:0; }
}
@media (max-width:47rem) {
  .p1-service-hero,.p1-case-hero { padding-top:3rem; }
  .p1-service-hero h1,.p1-case-hero h1 { font-size:clamp(1.95rem,8.6vw,2.4rem); line-height:1.06; }
  .p1-service-hero__grid,.p1-case-hero__copy { gap:2.25rem; }
  .p1-case-hero dl { grid-template-columns:1fr; }
  .p1-case-hero__media { width:min(100% - 2.25rem,86rem); }
}


/* Production title-scale refinement — e29ab1e */
.identity-hero h1 { font-size: clamp(2.35rem, 3vw, 3.5rem); max-width: 17ch; }
.diagnostic-hero h1 { max-width: 18ch; font-size: clamp(2.35rem, 2.9vw, 3.4rem); }
.case-hero h1 { max-width: 21ch; font-size: clamp(2.4rem, 3.1vw, 3.65rem); }
.p0-hub-hero h1, .p0-signal-hero h1 { max-width: 18ch; font-size: clamp(2.7rem, 3.7vw, 3.85rem); line-height: 1; letter-spacing: -.05em; }
.legal-hero h1 { font-size: clamp(2.45rem, 3.5vw, 3.6rem); }
.p1-service-hero h1 { max-width: 19ch; font-size: clamp(2.4rem, 3vw, 3.55rem); }
.p1-case-hero h1 { max-width: 19ch; font-size: clamp(2.5rem, 3.3vw, 3.75rem); }
