/* DATA C0RE — visual balance pass
   Targeted corrections only. Do not globally reshape project pages. */

.section-head h2,
.prose-large h2,
.home-direction h2,
.about-display,
.services-head h2,
.cv-head h2,
.references-list{
  text-wrap:balance;
}

/* HOME / PRACTICE --------------------------------------------------------- */
.home-statement-grid{
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);
  gap:clamp(38px,5vw,78px);
  align-items:center;
}
.home-statement-grid>*{min-width:0}
.home-statement h2{
  max-width:1120px;
  font-size:clamp(48px,6.15vw,104px);
  line-height:.96;
  letter-spacing:-.055em;
  text-wrap:balance;
}
.home-statement-copy{
  max-width:590px;
  font-size:clamp(17px,1.35vw,22px);
  line-height:1.48;
}
.home-statement .field-line{margin-top:22px}
html[lang="fr"] .home-statement h2,
html[lang="es"] .home-statement h2{font-size:clamp(46px,5.9vw,100px)}

/* ABOUT ------------------------------------------------------------------- */
.about-section-grid{
  grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr);
  gap:clamp(42px,6vw,96px);
  align-items:start;
}
.direction-copy{
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.72fr);
  gap:clamp(34px,6vw,90px);
  align-items:start;
}
.direction-tag{margin-top:2px!important}

/* SERVICES ----------------------------------------------------------------
   The page previously inherited the generic 11vw page-intro title, was centered
   inside a narrow 1220px box and used an undefined --page-pad for sections.
   Keep the service page aligned to the same site grid in every language. */
.services-intro{
  width:min(var(--max),100%);
  max-width:var(--max)!important;
  margin:0 auto;
  padding-top:clamp(118px,10vw,158px)!important;
  padding-bottom:clamp(58px,6vw,86px)!important;
}
.services-intro h1{
  max-width:1320px;
  margin:0;
  font-size:clamp(64px,8vw,132px)!important;
  line-height:.88;
  letter-spacing:-.065em;
  text-wrap:balance;
}
.services-intro>p:last-of-type{
  max-width:900px!important;
  margin-top:clamp(26px,2.5vw,38px)!important;
  font-size:clamp(15px,1.2vw,19px);
  line-height:1.52;
}
.services-meta{margin-top:24px!important}
.services-section{
  width:min(var(--max),100%);
  margin:0 auto;
  padding:clamp(52px,6vw,88px) var(--gutter)!important;
}
.services-head{
  grid-template-columns:minmax(150px,.34fr) minmax(0,1.66fr)!important;
  gap:clamp(30px,5vw,82px)!important;
  align-items:start!important;
}
.services-head h2{
  max-width:1050px;
  font-size:clamp(38px,5vw,76px)!important;
  line-height:.94;
}
.mobility-grid{
  grid-template-columns:minmax(170px,.34fr) minmax(0,1.66fr)!important;
  gap:clamp(30px,5vw,82px)!important;
}
.mobility-copy{max-width:980px!important}
.proof-list a{min-width:0}
.proof-list strong{min-width:0}

/* PROJECTS ----------------------------------------------------------------
   Restore the project system after the previous global balance pass changed all
   heroes. Project titles, intent, facts and media return to the original rhythm. */
.project-hero-copy{
  grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr)!important;
  gap:6vw!important;
  align-items:end!important;
}
.project-hero-copy>*{min-width:0}
.project-hero h1{
  max-width:none;
  margin:0;
  font-size:clamp(64px,9vw,148px)!important;
  line-height:.82;
  letter-spacing:-.07em;
  text-wrap:normal;
}
.project-intent{
  max-width:650px!important;
  margin:0 0 8px!important;
  font-size:clamp(18px,1.55vw,25px)!important;
  line-height:1.37!important;
}
.project-facts{margin-top:45px!important}

/* DESKTOP WITH LIMITED HEIGHT -------------------------------------------- */
@media(max-height:760px) and (min-width:901px){
  .home-statement{padding-top:clamp(72px,8vw,118px);padding-bottom:clamp(72px,8vw,118px)}
  .home-statement h2{font-size:clamp(45px,5.55vw,90px)}
  .services-intro{padding-top:96px!important;padding-bottom:54px!important}
  .services-intro h1{font-size:clamp(58px,7vw,108px)!important}
  .project-hero{padding-top:110px!important;padding-bottom:62px!important}
  .project-hero h1{font-size:clamp(58px,8vw,122px)!important}
  .project-facts{margin-top:30px!important}
}

/* TABLET ------------------------------------------------------------------ */
@media(max-width:900px){
  .home-statement-grid,
  .about-section-grid,
  .direction-copy{
    grid-template-columns:1fr;
    align-items:start;
  }
  .home-statement-grid{gap:30px}
  .home-statement h2,
  html[lang="fr"] .home-statement h2,
  html[lang="es"] .home-statement h2{
    max-width:900px;
    font-size:clamp(44px,8.7vw,78px);
    line-height:.98;
  }
  .home-statement-copy{max-width:720px;font-size:clamp(16px,2.25vw,20px)}
  .about-section-grid{gap:26px}
  .direction-copy{gap:22px}
  .direction-tag{max-width:620px}

  .services-intro{
    padding-top:112px!important;
    padding-bottom:56px!important;
  }
  .services-intro h1{
    max-width:820px;
    font-size:clamp(54px,10vw,88px)!important;
    line-height:.92;
  }
  .services-intro>p:last-of-type{max-width:760px!important;font-size:16px}
  .services-head,.mobility-grid{grid-template-columns:1fr!important;gap:18px!important}
  .services-head h2{font-size:clamp(40px,8vw,68px)!important}
  .services-section{padding-top:58px!important;padding-bottom:58px!important}

  .project-hero-copy{
    grid-template-columns:1fr!important;
    gap:24px!important;
    align-items:start!important;
  }
  .project-hero h1{
    max-width:900px;
    font-size:clamp(56px,11vw,104px)!important;
    line-height:.88;
  }
  .project-intent{max-width:760px!important;margin:0!important;font-size:clamp(17px,2.3vw,21px)!important;line-height:1.45!important}
  .project-facts{margin-top:30px!important}
}

/* MOBILE ------------------------------------------------------------------ */
@media(max-width:600px){
  .home-statement{padding-top:76px;padding-bottom:76px}
  .home-statement-grid{gap:24px}
  .home-statement h2,
  html[lang="fr"] .home-statement h2,
  html[lang="es"] .home-statement h2{
    font-size:clamp(38px,11.4vw,58px);
    line-height:1.01;
    letter-spacing:-.048em;
  }
  .home-statement-copy{font-size:15.5px;line-height:1.5}
  .home-statement .field-line{margin-top:18px}
  .about-section-grid,.direction-copy{gap:20px}

  .services-intro{
    padding-top:92px!important;
    padding-bottom:42px!important;
  }
  .services-intro h1{
    font-size:clamp(46px,13vw,68px)!important;
    line-height:.96;
    letter-spacing:-.055em;
  }
  .services-intro>p:last-of-type{margin-top:22px!important;font-size:15px;line-height:1.5}
  .services-meta{margin-top:18px!important;gap:8px 14px!important}
  .services-section{padding:46px var(--gutter)!important}
  .services-head{margin-bottom:24px!important}
  .services-head h2{font-size:clamp(36px,11vw,56px)!important;line-height:.98}
  .service-grid article{padding:22px 18px!important}
  .mobility-copy{font-size:clamp(18px,5.5vw,26px)!important;line-height:1.3!important}
  .proof-list a{grid-template-columns:1fr!important;gap:7px!important;padding:18px 0!important}

  .project-hero{padding-top:96px!important;padding-bottom:54px!important}
  .project-hero-copy{gap:18px!important}
  .project-hero h1{
    font-size:clamp(46px,14vw,72px)!important;
    line-height:.92;
    letter-spacing:-.055em;
  }
  .project-intent{font-size:16px!important;line-height:1.48!important}
  .project-facts{
    grid-template-columns:1fr!important;
    margin:24px 0 16px!important;
  }
  .project-facts span{
    border-right:0!important;
    border-bottom:1px solid var(--line);
    padding:10px 0!important;
  }
  .project-facts span:last-child{border-bottom:0}
}

/* FULLPAGE EDITORIAL BALANCE ---------------------------------------------
   Long localized statements must still read as one composition on desktop.
   Keep the supporting copy visually attached to the display text instead of
   letting a tall left column push it toward the bottom of the viewport. */
@media(min-width:821px) and (pointer:fine){
  body.fullpage-index .home-statement.fullpage-panel .home-statement-grid{
    grid-template-columns:minmax(0,1.1fr) minmax(340px,.9fr)!important;
    gap:clamp(34px,4.5vw,72px)!important;
    align-items:center!important;
  }
  body.fullpage-index .home-statement.fullpage-panel .home-statement-grid>.reveal:last-child{
    align-self:center!important;
  }
  body.fullpage-index .home-statement.fullpage-panel h2{
    max-width:980px;
    font-size:clamp(42px,min(4.8vw,7.8vh),82px)!important;
    line-height:.98!important;
    letter-spacing:-.052em;
    text-wrap:balance;
  }
  html[lang="fr"] body.fullpage-index .home-statement.fullpage-panel h2,
  html[lang="es"] body.fullpage-index .home-statement.fullpage-panel h2{
    font-size:clamp(40px,min(4.5vw,7.4vh),76px)!important;
  }
  body.fullpage-index .home-statement.fullpage-panel .home-statement-copy{
    max-width:560px!important;
    font-size:clamp(16px,1.2vw,20px)!important;
    line-height:1.48!important;
  }
  body.fullpage-index .home-statement.fullpage-panel .field-line{margin-top:18px!important}

  body.fullpage-index .home-direction.fullpage-panel h2{
    max-width:1250px;
    font-size:clamp(46px,min(6.3vw,9vh),104px)!important;
    line-height:.96!important;
  }
  html[lang="fr"] body.fullpage-index .home-direction.fullpage-panel h2,
  html[lang="es"] body.fullpage-index .home-direction.fullpage-panel h2{
    font-size:clamp(44px,min(5.8vw,8.4vh),94px)!important;
  }
  body.fullpage-index .home-direction.fullpage-panel p:last-child{
    margin-top:28px!important;
    font-size:clamp(16px,1.2vw,18px)!important;
  }

  body.fullpage-work .page-intro.fullpage-panel h1,
  body.fullpage-lab .page-intro.fullpage-panel h1,
  body.fullpage-cv .page-intro.fullpage-panel h1{
    font-size:clamp(56px,min(8vw,11vh),118px)!important;
    line-height:.88!important;
  }
}

@media(min-width:821px) and (pointer:fine) and (max-height:780px){
  body.fullpage-index .home-statement.fullpage-panel{
    padding-top:calc(var(--header) + 22px)!important;
    padding-bottom:22px!important;
  }
  body.fullpage-index .home-statement.fullpage-panel .home-statement-grid{
    grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr)!important;
    gap:clamp(28px,4vw,56px)!important;
  }
  body.fullpage-index .home-statement.fullpage-panel h2,
  html[lang="fr"] body.fullpage-index .home-statement.fullpage-panel h2,
  html[lang="es"] body.fullpage-index .home-statement.fullpage-panel h2{
    font-size:clamp(36px,min(4.1vw,7vh),58px)!important;
    line-height:1!important;
  }
  body.fullpage-index .home-statement.fullpage-panel .home-statement-copy{
    font-size:15px!important;
    line-height:1.45!important;
  }
  body.fullpage-index .home-statement.fullpage-panel .field-line{margin-top:14px!important}
  body.fullpage-index .home-statement.fullpage-panel .field-line span{
    padding:6px 9px!important;
    font-size:9px!important;
  }

  body.fullpage-index .home-direction.fullpage-panel{
    padding-top:calc(var(--header) + 22px)!important;
    padding-bottom:24px!important;
  }
  body.fullpage-index .home-direction.fullpage-panel h2,
  html[lang="fr"] body.fullpage-index .home-direction.fullpage-panel h2,
  html[lang="es"] body.fullpage-index .home-direction.fullpage-panel h2{
    font-size:clamp(38px,min(5vw,8vh),62px)!important;
    line-height:.98!important;
  }
  body.fullpage-index .home-direction.fullpage-panel p:last-child{margin-top:20px!important;font-size:15px!important}

  body.fullpage-work .page-intro.fullpage-panel h1,
  body.fullpage-lab .page-intro.fullpage-panel h1,
  body.fullpage-cv .page-intro.fullpage-panel h1{
    font-size:clamp(48px,min(6.6vw,9vh),74px)!important;
    line-height:.9!important;
  }
  body.fullpage-work .page-intro.fullpage-panel>p:last-child,
  body.fullpage-lab .page-intro.fullpage-panel>p:last-child,
  body.fullpage-cv .page-intro.fullpage-panel>p:last-child{
    margin-top:22px!important;
    font-size:16px!important;
  }
}
