/* ==========================================================================
   PORTALIS — Sections génériques : cabinet, approche, implantation,
   pages d'expertise (corps), mentions légales, footer bandeau
   ========================================================================== */

.sec.alt{background:var(--portalis-paper-2)}
.sec.dark{background:var(--portalis-graph)}

/* Cabinet: keep the same 5/6 proportion and fact-row geometry as the
   reference source. The Bootstrap classes remain in the markup for the
   responsive fallback, while these rules define the editorial layout. */
.cab.row{
  display:grid;
  grid-template-columns:minmax(0,5fr) minmax(0,6fr);
  gap:clamp(32px,7vw,104px);
  align-items:start;
  margin-right:0;
  margin-left:0;
}
.cab.row > [class*="col-"]{width:auto;padding-right:0;padding-left:0}
.impl.row,.contact.row{--bs-gutter-x:clamp(32px, 6vw, 88px)}

/* Le cabinet */
.cab-text{color:var(--portalis-ink)}
.cab-text p{max-width:54ch;color:var(--portalis-ink)}
.facts{border-top:1px solid var(--portalis-line)}
.facts li{display:grid;grid-template-columns:minmax(0,168px) 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--portalis-line)}
.facts li > [class*="col-"]{width:auto;padding-right:0;padding-left:0}
.facts h3{color:var(--bs-heading-color);letter-spacing:0}
.facts p{color:var(--portalis-ink-2)}

/* Portraits — placeholder photo, un seul traitement pour tous */
.portrait{aspect-ratio:4/5;color:var(--portalis-on-dark-2);background:var(--portalis-paper-2);border:1px solid var(--portalis-line-strong)}
.portrait img{object-fit:cover}
.portrait .mono{font:600 clamp(1.6rem,4vw,2.2rem)/1 var(--portalis-font-mono);letter-spacing:0;color:var(--portalis-ink-3)}
.portrait small{padding:8px 10px;font:500 .68rem/1.2 var(--portalis-font-mono);letter-spacing:.03em;color:var(--portalis-ink-3);background:linear-gradient(0deg,var(--portalis-paper) 40%,transparent)}

/* Approche */
.value{border-left:1px solid var(--portalis-line)}
.value:first-child{border-left:0}
.value .n{font:500 .78rem/1 var(--portalis-font-mono);color:var(--portalis-ink-3)}
.value h3{font:700 1.3rem/1.2 var(--portalis-font-display);color:var(--bs-heading-color)}
.value p{color:var(--portalis-ink-2);max-width:24ch}

/* Implantation */
.addr{font-style:normal;line-height:1.5}
.lines{border-top:1px solid var(--portalis-line)}
.lines a{text-decoration:none;font-weight:600}
.lines a:hover{color:var(--portalis-accent)}
.media{background:var(--portalis-line);border:1px solid var(--portalis-line)}
.ph{color:var(--portalis-ink-3);aspect-ratio:16/8;background:var(--portalis-paper-2)}
.ph .mono{font:600 2rem var(--portalis-font-mono);opacity:.6}
.accent-fill{fill:var(--portalis-accent)}
.paper-fill{fill:var(--portalis-paper)}
.ph small{padding:0 16px 12px;font:500 .72rem/1.2 var(--portalis-font-mono);color:var(--portalis-ink-3)}
.map{aspect-ratio:16/7;background:var(--portalis-paper)}
.map svg{object-fit:cover}
.map .st{stroke:var(--portalis-line);stroke-width:1;fill:none}
.map .st2{stroke:var(--portalis-line-strong);stroke-width:2;fill:none}
.map small{padding:0 14px 10px;font:500 .72rem/1.2 var(--portalis-font-mono);color:var(--portalis-ink-3)}

/* ============ Corps des pages d'expertise ============ */
.xbody.row{
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(0,8fr);
  gap:clamp(32px,6vw,88px);
  margin-right:0;
  margin-left:0;
}
.xbody.row > [class*="col-"]{width:auto;padding-right:0;padding-left:0}
.toc{position:sticky;top:calc(var(--portalis-hdr-u) + var(--portalis-hdr-m) + env(safe-area-inset-top,0px) + 28px);border-top:1px solid var(--portalis-line)}
.toc li{border-bottom:1px solid var(--portalis-line)}
.toc a{display:block;padding:12px 0;text-decoration:none;font:500 .86rem/1.3 var(--portalis-font-sans);color:var(--portalis-ink-2)}
.toc a:hover{color:var(--portalis-accent)}
.xsec{padding-bottom:clamp(36px,5vw,64px);margin-bottom:clamp(36px,5vw,64px);border-bottom:1px solid var(--portalis-line)}
.xsec:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.xsec h2{font-size:clamp(1.4rem,2.2vw,1.85rem);line-height:1.2;color:var(--bs-heading-color);margin-bottom:1.2rem}
.qs li{font:500 1.02rem/1.5 var(--portalis-font-sans);padding:16px 0 16px 16px;border-top:1px solid var(--portalis-line);border-left:2px solid var(--portalis-accent);color:var(--portalis-ink)}
.qs li:last-child{border-bottom:1px solid var(--portalis-line)}
.sit{display:grid;grid-template-columns:1fr 1fr;gap:0 36px;margin:0;padding:0}
.sit li{width:auto;padding:13px 0 13px 18px;font-size:.96rem;border-top:1px solid var(--portalis-line)}
.sit-marker{width:5px;height:5px;background:var(--portalis-accent)}
.xsec ul.plain{margin-top:1rem;padding-left:1.1rem}
.xsec ul.plain li{padding:4px 0}
.xsec p{max-width:60ch}
.ref-card{display:grid;grid-template-columns:minmax(0,168px) 1fr;gap:clamp(20px,3vw,36px);align-items:start}
.ref-card h3{font-size:1.4rem;color:var(--bs-heading-color);line-height:1.2;margin-top:0}
.ref-card p{color:var(--portalis-ink-2)}

.band{padding-top:clamp(44px,5.5vw,72px)!important;padding-bottom:clamp(44px,5.5vw,72px)!important}
.band h2{font-size:clamp(1.5rem,2.6vw,2.1rem);color:#fff;max-width:22ch}
.band p{color:var(--portalis-on-dark-2);margin:.7rem 0 0;max-width:50ch}
.others h2{font-size:1.3rem;color:var(--bs-heading-color);margin-bottom:12px}
.others ul{list-style:none}

/* ============ Mentions légales / pages génériques ============ */
.legal h1{font-size:clamp(2rem,4vw,3.1rem);line-height:1.1;color:var(--bs-heading-color);margin-bottom:1.4rem}
.legal h2{font-size:1.5rem;color:var(--bs-heading-color);margin:2.3rem 0 .7rem}
.legal h3{font:600 .95rem/1.3 var(--portalis-font-sans);margin:1.4rem 0 .4rem}
.legal .note{padding:13px 15px;border-left:2px solid var(--portalis-accent);background:var(--portalis-paper-2);color:var(--portalis-ink-2);font-size:.94rem}
