/* Article 11 — développer un logiciel en équipe. Sélecteurs préfixés par .p11. */
.p11{--p11-w:min(var(--wrap),calc(100% - 2*var(--gutter)));color:var(--ink);padding-bottom:40px}
.p11 a{color:var(--blue-deep)}
.p11 .m-button{color:#fff}
.p11 .m-pill{color:#294ca7}
.p11 h1,.p11 h2,.p11 h3{font-weight:450;letter-spacing:-.035em;line-height:1.12;margin:0}
.p11 p,.p11 li,.p11 td,.p11 dd{color:#2e3b5a}
.p11 strong{color:var(--ink);font-weight:600}

/* Héros */
.p11-hero{width:var(--p11-w);margin:30px auto 0}
.p11-kicker{margin:0 0 18px}
.p11-hero h1{font-size:clamp(32px,4.6vw,58px);letter-spacing:-.05em;max-width:1040px}
.p11-accent{background:var(--blue-soft);color:var(--ink);border:1px solid #c9d9fb;border-radius:14px;padding:0 .2em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.p11-intro{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:40px;align-items:end;margin:28px 0 32px}
.p11-lead{font-size:clamp(17px,1.5vw,19px);line-height:1.6;margin:0}
.p11-intro .byline{justify-self:end}
.p11-hero-art{margin:0}
.p11-hero-art img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:calc(var(--radius) + 6px);border:1px solid #e3ebf8;background:var(--blue-mist)}
.p11-hero-art figcaption,.p11-loop figcaption{font-size:13px;color:var(--muted);margin-top:10px}

/* Encadré de périmètre */
.p11-scope{width:var(--p11-w);max-width:900px;margin:56px auto 0;padding:26px 30px;border-radius:var(--radius);background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow)}
.p11-scope h2{font-size:20px;margin-bottom:10px}
.p11-scope p{margin:0 0 10px;line-height:1.6}
.p11-scope p:last-child{margin:0}

/* Sections */
.p11-section{width:var(--p11-w);margin:88px auto 0}
.p11-head{max-width:800px;margin-bottom:30px}
.p11-head h2,.p11-split h2,.p11-francois h2{font-size:clamp(28px,3.4vw,40px);margin:8px 0 16px}
.p11-head p{font-size:17px;line-height:1.6;margin:0}
.p11-eyebrow{font-size:13px;font-weight:600;color:var(--blue-deep);margin:0}

/* Rôles */
.p11-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.p11-role{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:#fff}
.p11-role h3{font-size:22px;margin-bottom:12px}
.p11-role p{margin:0 0 12px;line-height:1.55}
.p11-knows{font-size:17px}
.p11-not{padding-top:12px;border-top:1px dashed var(--line);margin:0!important}

/* Boucle */
.p11-loop{margin:0 0 40px;padding:30px;border-radius:calc(var(--radius) + 6px);background:linear-gradient(160deg,var(--blue-mist),#fff);border:1px solid var(--line)}
.p11-loop-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:34px;counter-reset:none}
.p11-loop-list li{position:relative;background:#fff;border:1px solid #cfdcf7;border-radius:var(--radius-sm);padding:20px 18px;display:flex;flex-direction:column;gap:8px;line-height:1.45}
.p11-loop-list li:not(:last-child)::after{content:"→";content:"→" / "";position:absolute;right:-26px;top:50%;transform:translateY(-50%);color:var(--blue-deep);font-size:20px}
.p11-loop-list strong{font-size:17px}
.p11-loop-list span:last-child{color:#2e3b5a;font-size:15px}
.p11-num{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-size:14px;font-weight:600;flex:none}
.p11-loop-back{margin:20px 0 0;text-align:center;color:var(--blue-deep)!important;font-weight:500}
.p11-loop-back span{font-size:20px;margin-right:6px}

/* Fiches des formats */
.p11-formats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.p11-format{border:1px solid var(--line);border-radius:var(--radius);padding:26px;background:#fff}
.p11-format h3{font-size:22px;display:flex;align-items:center;gap:10px;margin-bottom:16px}
.p11-format dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:10px 16px}
.p11-format dt{font-size:13px;font-weight:600;color:var(--muted);padding-top:3px}
.p11-format dd{margin:0;line-height:1.55}

/* Tableau */
.p11-table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.p11-table-wrap:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
.p11-table{width:100%;border-collapse:collapse;min-width:720px;font-size:15px}
.p11-table caption{text-align:left;padding:18px 20px 0;font-weight:600;color:var(--ink)}
.p11-table th,.p11-table td{text-align:left;padding:14px 20px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.5}
.p11-table thead th{font-size:13px;color:var(--muted);font-weight:600}
.p11-table tbody th{font-weight:600;color:var(--ink)}
.p11-table tbody tr:last-child>*{border-bottom:0}
.p11-table td:nth-child(3){color:var(--blue-deep);font-weight:500}

/* Exemple */
.p11-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;position:relative}
.p11-steps li{border-top:3px solid var(--blue);padding:16px 4px 0}
.p11-steps p{margin:0;line-height:1.55}
.p11-step-tag{font-weight:600;color:var(--blue-deep)!important;margin-bottom:8px!important}
.p11-note{margin:28px 0 0;padding:18px 22px;border-radius:var(--radius-sm);background:var(--blue-soft);max-width:820px;line-height:1.6}

/* Préparation */
.p11-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:48px;align-items:start}
.p11-split p{font-size:17px;line-height:1.6}
.p11-check{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.p11-check li{position:relative;padding:14px 18px 14px 50px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff;line-height:1.5}
.p11-check li::before{content:"";position:absolute;left:18px;top:16px;width:18px;height:18px;border-radius:5px;border:2px solid var(--blue)}

/* Dérives */
.p11-drift{margin:0;display:grid;gap:0;border-top:1px solid var(--line)}
.p11-drift>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;padding:18px 0;border-bottom:1px solid var(--line)}
.p11-drift dt{font-weight:600;color:var(--ink);line-height:1.5}
.p11-drift dd{margin:0;line-height:1.55}

/* François */
.p11-francois{display:grid;grid-template-columns:96px minmax(0,1fr);gap:28px;align-items:start;padding:34px;border-radius:calc(var(--radius) + 6px);background:var(--glass);border:1px solid var(--line);box-shadow:var(--shadow)}
.p11-portrait{width:96px;height:96px;border-radius:50%;object-fit:cover;background:var(--blue-soft)}
.p11-francois p{line-height:1.6;max-width:820px}
.p11-sign{display:block;margin-top:8px;font-size:14px;color:var(--muted)}

/* Liens */
.p11-more h2{font-size:24px;margin-bottom:14px}
.p11-more ul{margin:0;padding-left:20px;display:grid;gap:8px}

@media(max-width:1060px){
  .p11-loop-list{grid-template-columns:repeat(2,minmax(0,1fr))}
  .p11-loop-list li:nth-child(2)::after{display:none}
  .p11-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:860px){
  .p11-intro,.p11-split{grid-template-columns:1fr;gap:20px}
  .p11-intro .byline{justify-self:start}
  .p11-roles,.p11-formats{grid-template-columns:1fr}
  .p11-drift>div{grid-template-columns:1fr;gap:6px}
  .p11-section{margin-top:64px}
}
@media(max-width:620px){
  .p11-loop{padding:18px}
  .p11-loop-list,.p11-steps{grid-template-columns:1fr;gap:26px}
  .p11-loop-list li::after{display:block!important;content:"↓";content:"↓" / "";right:auto;left:50%;top:auto;bottom:-24px;transform:translateX(-50%)}
  .p11-loop-list li:last-child::after{display:none!important}
  .p11-format dl{grid-template-columns:1fr;gap:2px}
  .p11-format dd{margin-bottom:10px}
  .p11-francois{grid-template-columns:1fr;padding:22px}
  .p11-scope{padding:20px}
}
