/* V4: restrained additions over the retained ISPHOTO design. */
body.v4-mode { --color-text-2: rgba(255,255,255,.78); --color-text-3: rgba(255,255,255,.62); }
body.v4-mode :is(h1,h2,h3,h4,p,a,span,label,button) { letter-spacing: 0; }
body.v4-mode :is(h1,h2,h3,p) { word-break: normal; overflow-wrap: normal; hyphens: none; }
body.v4-mode :is(h1,h2,h3) { text-wrap: balance; }
body.v4-mode :is(.container,.stub-preview-inner,.nav-inner) { max-width: 1320px; }
body.v4-mode :is(.bio-content,.acte-text,.stub-corpus-card,.footer-grid>div) { min-width: 0; }
body.v4-mode .cinematic-opening { height: auto; min-height: 60svh; padding: 86px 24px 36px; background:#000; }
body.v4-mode .opening-stage { position: relative; inset: auto; width:100%; max-width:1050px; margin:auto; transform:none; padding:0; gap:16px; }
body.v4-mode .opening-frame--name { font-size:88px; line-height:1.15; margin:0 0 12px; color:#d4b77c; white-space:nowrap; }
body.v4-mode .opening-credential-stack { gap:10px; max-width:900px; width:100%; }
body.v4-mode .opening-frame--credential { font-size:21px; line-height:1.4; }
body.v4-mode .opening-patrimoine { position:relative; inset:auto; margin-top:18px; }
body.v4-mode .opening-patrimoine-line { font-size:15px; line-height:1.6; color:#c8c8c8; }
body.v4-mode .nav--v2 .nav-brand-name { text-transform:none; font-size:22px; color:#d4b77c; white-space:nowrap; }
body.v4-mode .nav--v2 .nav-brand-tagline { font-size:10px; }
body.v4-mode .nav--v2 .nav-brand { gap:12px; }
body.v4-mode .hero-title-name { font-size:68px; color:#d4b77c; }
body.v4-mode .hero-disciplines { flex-wrap:wrap; line-height:1.8; gap:8px; }
body.v4-mode .hero-disciplines>span:not(.hero-dot) { white-space:nowrap; }
body.v4-mode .hero .signature-band { position:absolute; bottom:104px; left:0; width:100%; z-index:5; padding:12px 0; background:rgba(0,0,0,.65); border:0; }
body.v4-mode .hero .sig-item { color:#eee; font-size:12px; }
body.v4-mode .hero-scroll { bottom:24px; color:white; text-decoration:none; }
body.v4-mode .bio-content h2 { font-size:42px; line-height:1.15; }
body.v4-mode .bio-content p { font-size:16px; line-height:1.85; color:#d3d3d3; }
body.v4-mode .bio-stats { gap:24px; flex-wrap:wrap; }
body.v4-mode .bio-stat-label { white-space:normal; }
body.v4-mode :is(.acte-body,.stub-lead) { color:#d3d3d3; }
body.v4-mode :is(.stub-h1,.page-hero-h1) { font-size:60px; line-height:1.13; }
body.v4-mode :is(.btn,.contact-form-submit) { min-height:44px; white-space:normal; text-align:center; line-height:1.5; }
body.v4-mode a:focus-visible, body.v4-mode button:focus-visible { outline:2px solid white; outline-offset:5px; }
.v4-section { padding:72px 32px; background:#0a0a0a; }
.v4-inner { max-width:1200px; margin:auto; }
.v4-section h2 { font-family:var(--font-serif); font-size:42px; line-height:1.15; color:#d4b77c; margin:0 0 24px; }
.v4-section p { max-width:760px; font-size:16px; line-height:1.85; color:#d4d4d4; margin:0 0 18px; }
.v4-kicker { display:block; font:12px var(--font-sans); color:#aaa; margin:0 0 16px; }
.v4-domains { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:40px 28px; }
.v4-domain { min-width:0; border-top:1px solid #383838; padding-top:18px; }
.v4-domain img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; margin-bottom:18px; }
.v4-domain h3 { font-family:var(--font-serif); font-weight:400; font-size:28px; line-height:1.2; margin-bottom:12px; color:#eee; }
.v4-domain p { font-size:14px; }
.v4-link { display:inline-flex; min-height:44px; align-items:center; gap:12px; color:white; border-bottom:1px solid #d4b77c; text-decoration:none; font-size:13px; }
.v4-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:24px; }
.v4-editorial { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
.v4-editorial img { width:100%; max-height:560px; object-fit:contain; }
.v4-publications { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px; }
.v4-publications img { width:100%; height:360px; object-fit:contain; background:#050505; margin:0 0 18px; }
.v4-publications h3 { font:32px var(--font-serif); margin-bottom:12px; }
.v4-landing .v4-lead { padding:110px 32px 40px; max-width:1264px; margin:auto; }
.v4-landing h1 { font:400 60px/1.12 var(--font-serif); color:#d4b77c; margin-bottom:24px; max-width:950px; }
.v4-landing .v4-intro { font:24px/1.5 var(--font-serif); color:#eee; max-width:820px; }
.v4-landing-hero { width:100%; height:64svh; min-height:320px; object-fit:cover; object-position:center; display:block; }
.v4-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.v4-gallery-grid figure { min-width:0; margin:0; }
.v4-gallery-grid img { width:100%; height:320px; object-fit:contain; background:#050505; display:block; }
.v4-gallery-grid figcaption { color:#bbb; font-size:12px; line-height:1.6; padding-top:12px; }
.v4-gallery { position:relative; }
.v4-gallery .diaporama-slide { transition:opacity .3s ease; }
.v4-gallery :is(.curtain-blade,.curtain-image-layer) { animation-duration:180ms !important; }
.v4-gallery-controls { position:absolute; right:12px; bottom:12px; z-index:15; display:flex; gap:6px; background:rgba(0,0,0,.8); padding:4px; }
.v4-gallery-controls button { width:44px; height:44px; display:grid; place-items:center; color:white; background:transparent; border:1px solid #555; font-size:20px; cursor:pointer; }
.v4-gallery-controls button:hover { border-color:#d4b77c; background:#191919; }
body.v4-mode :is(.bio-hero-credit,.photo-credit) { pointer-events:none; }
.v4-gallery-count { align-self:center; color:white; font:12px var(--font-sans); padding:0 8px; }
.v4-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media(max-width:1000px) {
 body.v4-mode .nav--v2 .nav-utility-socials { display:none; }
 body.v4-mode .opening-frame--name { font-size:68px; }
 .v4-domains { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .v4-editorial { gap:28px; }
 body.v4-mode .bio-editorial-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; }
}
@media(max-width:768px) {
 body.v4-mode .cinematic-opening { min-height:60svh; padding:110px 22px 32px; }
 body.v4-mode .opening-frame--name { font-size:52px; white-space:normal; }
 body.v4-mode .opening-frame--credential { font-size:17px; }
 body.v4-mode .opening-patrimoine-line { font-size:13px; }
 body.v4-mode .nav--v2 .nav-inner { padding:8px 14px; gap:8px; }
 body.v4-mode .nav--v2 .nav-brand-name { font-size:19px; }
 body.v4-mode .nav--v2 .nav-brand-tagline { display:block !important; font-size:9px; color:#ddd; line-height:1.5; }
 body.v4-mode .nav-utility { gap:8px; }
 body.v4-mode .nav-utility :is(.nav-dima-btn,.nav-socials,.nav-utility-socials) { display:none; }
 body.v4-mode .menu-secondary { height:auto; min-height:0; }
 body.v4-mode .menu-secondary-list { display:none; }
 body.v4-mode .menu-secondary-list.open { display:flex; position:fixed; top:96px; left:12px; right:12px; max-height:calc(100svh - 112px); overflow:auto; padding:20px; background:#080808; flex-direction:column; align-items:stretch; z-index:9998; }
 body.v4-mode .menu-secondary-list.open a { display:flex; min-height:44px; align-items:center; justify-content:center; font-size:14px; color:#eee; }
 body.v4-mode .nav-toggle { display:block; width:44px; height:44px; flex-shrink:0; }
 body.v4-mode .hero-title-name { font-size:44px; }
 body.v4-mode .hero-disciplines { font-size:12px; }
 body.v4-mode .hero { min-height:640px; height:90svh; }
 body.v4-mode .hero .signature-band { bottom:90px; }
 body.v4-mode :is(.bio-editorial-grid,.acte-i-layout,.acte-ii-layout,.acte-iii-layout,.footer-grid,.contact-form-row) { grid-template-columns:minmax(0,1fr); }
 body.v4-mode :is(.bio-content h2,.stub-h1,.page-hero-h1,.acte-title,.stub-preview-title) { font-size:36px; }
 body.v4-mode :is(.acte-title,.stub-h1,.page-hero-h1) br { display:none; }
 body.v4-mode :is(.acte-text,.stub-hero-content,.page-hero-content) { max-width:100%; }
 body.v4-mode .stub-corpus-grid { grid-template-columns:minmax(0,1fr); }
 .v4-section { padding:48px 22px; }
 .v4-section h2 { font-size:34px; }
 .v4-editorial,.v4-publications { grid-template-columns:minmax(0,1fr); }
 .v4-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
 .v4-gallery-grid img { height:230px; }
 .v4-landing .v4-lead { padding:104px 22px 32px; }
 .v4-landing h1 { font-size:40px; }
 .v4-landing .v4-intro { font-size:22px; }
 .v4-landing-hero { height:50svh; }
}
@media(max-width:420px) {
 body.v4-mode .nav--v2 .nav-brand-name { font-size:17px; }
 body.v4-mode .nav--v2 .nav-brand { gap:8px; }
 body.v4-mode .nav--v2 .nav-logo-mark, body.v4-mode .nav--v2 .nav-logo-mark .logo-base { width:42px; height:42px; }
 body.v4-mode .nav-utility .nav-lang-toggle { display:none; }
 body.v4-mode .opening-frame--name { font-size:44px; }
 body.v4-mode .opening-frame--credential { font-size:16px; }
 body.v4-mode .hero-title-name { font-size:38px; }
 .v4-domains,.v4-gallery-grid { grid-template-columns:minmax(0,1fr); }
 .v4-gallery-grid img { height:330px; }
}
@media(prefers-reduced-motion:reduce) {
 body.v4-mode .opening-frame { opacity:1 !important; transform:none !important; filter:none !important; }
 .v4-gallery * { animation:none !important; transition:none !important; }
}
