:root{
  --bg:#f6f6f3;
  --panel:rgba(255,255,255,.82);
  --panel-strong:rgba(255,255,255,.94);
  --ink:#0a0a0a;
  --ink-2:#292929;
  --muted:#666;
  --accent:#d65a2f;
  --accent-2:#1f5f3f;
  --serif:"Instrument Serif","Times New Roman",serif;
  --sans:"Plus Jakarta Sans",system-ui,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,monospace;
  --maxw:1480px;
  --header-h:68px;
  --footer-h:54px;
  --ease:cubic-bezier(.22,.75,.18,1);
}
*{box-sizing:border-box}
html,body{margin:0;width:100%;height:100%;overflow:hidden}
body{
  display:grid;
  grid-template-rows:var(--header-h) minmax(0,1fr) var(--footer-h);
  font-family:var(--sans);
  font-size:clamp(15px,calc(10px + .48vw),18px);
  color:var(--ink);
  background:var(--bg);
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
button,a,summary{font:inherit}
.site-background{
  position:fixed;
  inset:0;
  z-index:0;
  background:url('../img/background-handshake.jpeg') center/cover no-repeat;
  opacity:.40;
  pointer-events:none;
}
.site-header,.site-main,.site-footer{position:relative;z-index:1}
.shell{width:min(100%,var(--maxw));height:100%;margin:0 auto;padding:0 clamp(18px,3vw,46px)}
.site-header{height:var(--header-h);background:rgba(255,255,255,.9);backdrop-filter:blur(12px);border-bottom:2px solid var(--ink);z-index:50}
.top{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand-lockup{display:flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}
.brand-lockup .mark{width:32px;height:32px}
.brand-lockup .name{font-family:var(--serif);font-size:24px;line-height:1}
.brand-lockup .name em{color:var(--accent)}
.nav-actions{display:flex;align-items:center;gap:18px}
.links{display:flex;align-items:center;gap:8px}
.links a{
  font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;padding:9px 11px;border:1px solid transparent;
  transition:background .2s,color .2s,border-color .2s;
}
.links a:hover{color:var(--accent);border-color:rgba(10,10,10,.2)}
.links a.active{background:var(--ink);color:#fff;border-color:var(--ink)}
.lang-toggle{display:flex;border:2px solid var(--ink);background:#fff}
.lang-toggle button{border:0;background:transparent;font-family:var(--mono);font-size:9px;letter-spacing:.14em;padding:6px 10px;cursor:pointer}
.lang-toggle button.on{background:var(--ink);color:#fff}
.menu-toggle{display:none;width:38px;height:34px;border:2px solid var(--ink);background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px;cursor:pointer}
.menu-toggle span{width:17px;height:2px;background:currentColor;transition:.2s}
.nav-actions.open .menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-actions.open .menu-toggle span:nth-child(2){opacity:0}
.nav-actions.open .menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

.site-main{min-height:0;overflow:hidden}
.page-scroll{
  height:100%;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(0,0,0,.28) transparent;
  display:flex;
  flex-direction:column;
}
.page-panel{
  width:100%;
  flex:0 0 auto;
  min-height:0;
  margin-block:auto;
  background:rgba(255,255,255,.56);
  backdrop-filter:blur(2px);
  padding:clamp(38px,6vh,82px) 0;
  animation:page-enter .38s var(--ease) both;
}
.page-panel>.screen-section{
  width:min(calc(100% - clamp(40px,7vw,112px)),var(--maxw));
  margin-left:auto;
  margin-right:auto;
}
.screen-section{border:0!important;padding:0!important}
@keyframes page-enter{
  from{opacity:0;transform:translateY(10px) scale(.995)}
  to{opacity:1;transform:none}
}

.hero{position:relative;padding-top:clamp(8px,2vh,28px)!important}
.hero .eyebrow,.eyebrow{
  font-family:var(--mono);font-size:clamp(10px,.72vw,12px);letter-spacing:.19em;text-transform:uppercase;
  color:var(--muted);display:flex;align-items:center;gap:14px;margin-bottom:clamp(20px,3vh,32px)
}
.eyebrow::after{content:"";height:1px;background:rgba(0,0,0,.3);width:clamp(80px,12vw,180px)}
.hero h1{
  font-family:var(--serif);font-size:clamp(56px,8vw,124px);font-weight:400;line-height:.93;
  letter-spacing:-.026em;margin:0 0 clamp(24px,3vh,38px);max-width:1120px
}
.hero h1 em,.section-head h2 em,.summary-title h3 em,.method-bridge em,.sustain-lede em,.sustain-card h4 em,.contact-section h2 em{font-style:italic;color:var(--accent)}
.sustainability .section-head h2 em{color:var(--accent-2)}
.hero .lede{font-family:var(--serif);font-size:clamp(22px,2.15vw,32px);line-height:1.38;max-width:820px;margin:0;color:var(--ink-2)}
.home-practice-divider{width:min(calc(100% - clamp(40px,7vw,112px)),var(--maxw));height:2px;background:var(--ink);margin:clamp(48px,8vh,94px) auto clamp(38px,6vh,72px)}
.home-practice{padding-bottom:clamp(10px,2vh,28px)!important}
.positioning{display:grid;grid-template-columns:150px minmax(0,1.05fr) minmax(0,1fr);gap:clamp(30px,4vw,70px);align-items:start}
.positioning>.col:first-child{font-family:var(--mono);font-size:clamp(11px,.72vw,13px);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.positioning p{margin:0 0 18px;color:var(--ink-2);font-size:clamp(16px,1.05vw,20px);line-height:1.65}
.positioning .col:nth-child(2) p{font-family:var(--serif)!important;font-size:clamp(30px,3vw,44px)!important;line-height:1.2!important;color:var(--ink)!important}
.positioning strong{color:var(--ink)}

.section-head{display:grid;grid-template-columns:150px minmax(0,1fr);gap:clamp(30px,4vw,70px);align-items:end;padding-bottom:24px;margin-bottom:30px;border-bottom:2px solid var(--ink)}
.section-head .num,.num{font-family:var(--mono);font-size:clamp(11px,.72vw,13px);font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.section-head h2{font-family:var(--serif);font-size:clamp(42px,4.8vw,72px);font-weight:400;line-height:.98;margin:0;letter-spacing:-.022em}
.services,.engagements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.expand-card{background:rgba(255,255,255,.72);border:1.5px solid var(--ink);min-width:0}
.expand-card[open]{background:var(--panel-strong)}
.expand-summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:clamp(20px,2vw,28px);min-height:94px}
.expand-summary::-webkit-details-marker{display:none}
.summary-title{display:flex;align-items:center;gap:16px;min-width:0}
.summary-title h3,.engagement-title h4{font-family:var(--serif);font-size:clamp(25px,2.35vw,36px);font-weight:400;line-height:1.05;margin:0}
.summary-title .glyph{display:flex;color:var(--accent);flex:0 0 auto}
.expand-mark{font-family:var(--mono);font-size:25px;font-weight:300;line-height:1;transition:transform .25s;flex:0 0 auto}
.expand-card[open] .expand-mark{transform:rotate(45deg)}
.expand-body{border-top:1.5px solid var(--ink);padding:clamp(18px,2vw,28px);color:var(--ink-2);font-size:clamp(14px,.92vw,17px)}
.expand-body p{margin:0 0 16px}
.expand-body ul{list-style:none;padding:14px 0 0;margin:0;border-top:1px solid rgba(0,0,0,.25)}
.expand-body li{font-family:var(--mono);font-size:clamp(10px,.65vw,12px);letter-spacing:.035em;padding:5px 0;display:flex;gap:9px}
.expand-body li::before{content:"▸";color:var(--accent)}
.approach{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.step{border-top:2px solid var(--ink);padding-top:16px}
.step h4{font-family:var(--serif);font-size:clamp(27px,2vw,34px);font-weight:400;margin:0 0 9px}
.step p{font-size:clamp(14px,.9vw,17px);color:var(--ink-2);margin:0}
.method-bridge{display:grid;grid-template-columns:150px 1fr;gap:clamp(30px,4vw,70px);margin-top:30px;padding-top:22px;border-top:1px solid rgba(0,0,0,.35)}
.method-bridge .label{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.method-bridge p{font-family:var(--serif);font-size:clamp(21px,1.65vw,28px);margin:0}
.principles-expander{margin-top:24px}
.principles-summary{min-height:78px}
.principles-title{display:grid;grid-template-columns:150px 1fr;align-items:center;width:100%;gap:30px}
.principles-title h2{font-family:var(--serif);font-size:clamp(31px,2.5vw,42px);font-weight:400;margin:0}
.principles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 42px}
.principle{display:grid;grid-template-columns:42px 1fr;gap:16px}
.principle .n{font-family:var(--serif);font-size:36px;color:var(--accent)}
.principle h5{font-family:var(--serif);font-size:clamp(21px,1.5vw,27px);font-weight:400;margin:0 0 5px}
.principle p{font-size:clamp(14px,.9vw,17px);margin:0;color:var(--ink-2)}
.engagements{grid-template-columns:repeat(3,minmax(0,1fr))}
.engagement-title{display:block;flex:1;min-width:0;width:100%}
.engagement-title .kicker{font-family:var(--mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}
.engagement-title h4{font-size:clamp(24px,1.85vw,31px);margin-bottom:6px}
html[data-lang="fr"] .engagement-title h4.fit-one-line{white-space:nowrap;max-width:100%;letter-spacing:-.018em}
.engagement-title .duration{font-family:var(--mono);font-size:10px;color:var(--muted)}
.phases{padding-top:14px;border-top:1px solid rgba(0,0,0,.25)}
.ph-label{font-family:var(--mono);font-size:9px;letter-spacing:.16em;text-transform:uppercase;margin-bottom:8px}
.ph-row{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.ph .bar{height:5px;background:#ddd}.ph.on .bar{background:var(--accent)}.ph.partial .bar{background:repeating-linear-gradient(90deg,var(--accent) 0 4px,transparent 4px 8px)}.ph .nm{font-family:var(--mono);font-size:8px;margin-top:4px;text-transform:uppercase}
.sustain-lede{font-family:var(--serif);font-size:clamp(23px,2.1vw,32px);line-height:1.35;max-width:980px;margin:0 0 30px}
.sustain-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.sustain-card{background:rgba(255,255,255,.72);border:1.5px solid var(--ink);padding:clamp(22px,2vw,30px)}
.sustain-card .ico{width:32px;color:var(--accent-2)}
.sustain-card h4{font-family:var(--serif);font-size:clamp(25px,1.8vw,31px);font-weight:400;margin:12px 0 8px}.sustain-card h4 em{color:var(--accent-2)}
.sustain-card p{font-size:clamp(14px,.9vw,17px);margin:0;color:var(--ink-2)}
.measures-card{margin-top:16px}.measures-card .summary-title{font-family:var(--mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent-2)}
.measures-card .expand-body ul{columns:2;column-gap:30px;border:0;padding:0}.measures-card .expand-body li::before{background:var(--accent-2);content:"";width:6px;height:6px;margin-top:6px;flex:0 0 6px}

.contact-section{background:transparent;color:var(--ink);display:flex;flex-direction:column;justify-content:center}
.contact-section .eyebrow{color:var(--muted)}
.contact-section .eyebrow::after{background:rgba(0,0,0,.3)}
.contact-section h2{font-family:var(--serif);font-size:clamp(48px,6.2vw,92px);font-weight:400;line-height:.98;margin:0 0 40px;letter-spacing:-.023em;color:var(--ink)}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding-top:30px;border-top:2px solid var(--ink)}
.contact-grid .label{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.contact-grid .val{font-family:var(--serif);font-size:clamp(20px,1.5vw,27px)}
.contact-grid a{color:var(--ink)}
.action-button{display:inline-block;background:var(--ink);color:#fff!important;font-family:var(--sans);font-size:12px!important;font-weight:600;letter-spacing:.03em;padding:11px 16px;text-decoration:none;border:1px solid var(--ink);transition:background .2s,color .2s}
.action-button:hover{background:var(--accent);border-color:var(--accent)}

.site-footer{height:var(--footer-h);background:rgba(10,10,10,.96);color:#fff;z-index:50}
.footer-grid{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px}
.footer-brand{display:flex;gap:16px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.screen-status{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase}
.pager{display:flex;justify-content:flex-end;gap:8px}
.pager a{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(255,255,255,.32);background:transparent;color:#fff;font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;padding:8px 10px;text-decoration:none;transition:background .2s,color .2s}
.pager a:hover,.pager a:focus-visible{background:#fff;color:#000}
.pager-spacer{width:1px}

@media(max-width:1100px){
  .links{gap:3px}.links a{font-size:9px;padding:8px}
  .engagements{grid-template-columns:repeat(2,1fr)}
  .positioning,.section-head{grid-template-columns:120px 1fr 1fr;gap:30px}
  .section-head{grid-template-columns:120px 1fr}
}
@media(max-width:820px){
  :root{--header-h:62px;--footer-h:54px}
  .shell{padding:0 18px}.menu-toggle{display:flex}.nav-actions{gap:9px}
  .links{display:none;position:fixed;top:62px;left:10px;right:10px;background:#fff;border:2px solid var(--ink);box-shadow:0 20px 45px rgba(0,0,0,.22);z-index:100;max-height:calc(100dvh - 80px);overflow:auto}
  .nav-actions.open .links{display:flex;flex-direction:column;align-items:stretch;gap:0}
  .links a{font-size:10px;padding:14px 16px;border-bottom:1px solid var(--ink)}.links a:last-child{border-bottom:0}.links a.active{background:var(--ink);color:#fff}
  .page-panel{padding:34px 0}.page-panel>.screen-section,.home-practice-divider{width:calc(100% - 36px)}
  .section-head{grid-template-columns:1fr;gap:8px;margin-bottom:24px}
  .positioning{grid-template-columns:1fr;gap:18px}.positioning>.col:first-child{margin-bottom:2px}
  .services,.engagements{grid-template-columns:1fr}.approach{grid-template-columns:repeat(2,1fr)}
  .method-bridge,.principles-title{grid-template-columns:1fr;gap:8px}.principles{grid-template-columns:1fr}.sustain-grid{grid-template-columns:1fr}.contact-grid{grid-template-columns:1fr;gap:20px}
  .footer-brand span:last-child{display:none}.footer-grid{grid-template-columns:1fr auto}.screen-status{display:none}.pager a span[data-i18n]{display:none}
}
@media(max-width:540px){
  :root{--header-h:58px;--footer-h:50px}.shell{padding:0 12px}.brand-lockup .mark{width:29px;height:29px}.brand-lockup .name{font-size:21px}.lang-toggle button{padding:5px 8px}.links{top:58px}
  .page-panel{padding:28px 0}.page-panel>.screen-section,.home-practice-divider{width:calc(100% - 28px)}
  .hero h1{font-size:clamp(46px,15vw,66px)}.hero .lede{font-size:21px}
  .positioning .col:nth-child(2) p{font-size:clamp(28px,9vw,38px)!important}
  .section-head h2{font-size:clamp(38px,11vw,50px)}.approach{grid-template-columns:1fr}.measures-card .expand-body ul{columns:1}
  .expand-summary{padding:18px;min-height:76px}.expand-body{padding:17px 18px}.summary-title h3,.engagement-title h4{font-size:24px}
  .contact-section h2{font-size:clamp(41px,12vw,58px)}.footer-brand{font-size:8px}.pager a{padding:7px 9px}
}
@media(prefers-reduced-motion:reduce){.page-panel{animation:none!important}.expand-mark,.menu-toggle span{transition:none!important}}

/* =============================================================
   DISCLOSURE BEHAVIOUR REFINEMENTS
   ============================================================= */

/* Services and engagements are compact exclusive accordions. */
.services .expand-card,
.engagements .expand-card{
  align-self:start;
}

/* Principles remain visible by default and read as part of the approach. */
.principles-expander[open] .principles-summary{
  border-bottom:1.5px solid var(--ink);
}

/* Sustainability measures: compact, full-width and typographically aligned
   with the other sustainability cards. */
.measures-card{
  margin-top:14px;
  width:100%;
  background:rgba(255,255,255,.72);
}
.measures-card .expand-summary{
  min-height:0;
  padding:14px clamp(20px,2vw,28px);
}
.measures-card .summary-title{
  width:100%;
}
.measures-card .summary-title .label{
  font-family:var(--serif);
  font-size:clamp(21px,1.55vw,27px);
  font-weight:400;
  line-height:1.15;
  letter-spacing:-.008em;
  text-transform:none;
  color:var(--ink);
}
.measures-card .expand-mark{
  font-size:21px;
}
.measures-card .expand-body{
  padding:14px clamp(20px,2vw,28px) 18px;
}
.measures-card .expand-body ul{
  columns:3;
  column-gap:clamp(22px,3vw,44px);
}
.measures-card .expand-body li{
  font-family:var(--sans);
  font-size:clamp(13px,.82vw,16px);
  line-height:1.45;
  padding:4px 0;
  break-inside:avoid;
}

@media(max-width:820px){
  .measures-card .expand-body ul{columns:2;}
}
@media(max-width:540px){
  .measures-card .expand-summary{padding:13px 17px;}
  .measures-card .expand-body{padding:12px 17px 16px;}
  .measures-card .expand-body ul{columns:1;}
}
