@font-face {
  font-family:"Masqualero";
  src:url("assets/fonts/MasqualeroW01-Regular.woff2") format("woff2"),
      url("assets/fonts/MasqualeroW01-Regular.woff") format("woff");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}

:root {
  --ink:#212121;
  --paper:#ece8e4;
  --white:#fff;
  --gutter:36px;
  --serif:"Masqualero",Didot,"Times New Roman",serif;
  --sans:"DM Sans","Helvetica Neue",Arial,sans-serif;
  /* Échelle fluide calculée sur la largeur de référence Figma de 1440 px. */
  --fs-small:clamp(12px,.972vw,16px);
  --fs-body:clamp(14px,1.111vw,20px);
  --fs-body-lg:clamp(16px,1.25vw,22px);
  --fs-label:clamp(18px,1.667vw,30px);
  --fs-copy:clamp(32px,3.056vw,56px);
  --fs-display:clamp(48px,5.278vw,96px);
  --fs-card:clamp(30px,2.917vw,54px);
  --fs-icon:clamp(28px,2.5vw,46px);
  --fs-page-text:clamp(17px,1.389vw,24px);
}
* { box-sizing:border-box; }
html { scroll-behavior:auto; }
body { margin:0; overflow-x:hidden; background:var(--paper); color:var(--ink); font-family:var(--serif); }
#smooth-content { padding-top:131px; }
body.menu-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { color:inherit; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.site-header { height:131px; padding:0 var(--gutter); display:grid; grid-template-columns:64px 1fr 42px; align-items:center; position:fixed; inset:0 0 auto; z-index:20; background: linear-gradient(180deg, #ECE8E4 61.83%, rgba(236, 232, 228, 0.00) 100%); }
.monogram { width:58px; height:58px; display:block; }
.monogram img { display:block; width:100%; height:100%; }
.main-nav { display:flex; justify-content:center; gap:clamp(55px,13.4vw,193px); font:700 14px/1 var(--sans); text-transform:uppercase; }
.main-nav a, .language { position:relative; }
.main-nav a::before { content:""; position:absolute; width:84px; height:13px; left:50%; top:-58px; background:var(--ink); transform:translateX(-50%) scaleX(0); transform-origin:center; transition:transform .25s ease; }
.main-nav a.is-active::before { transform:translateX(-50%) scaleX(1); }
.language { width:34px; height:28px; padding:0; border:2px solid var(--ink); background:transparent; font:700 14px/1 var(--sans); }
.menu-toggle { display:none; }
.hero { height:594px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; padding-top:135px; }
.wordmark { width:min(499px,48vw); height:auto; display:block; }
.hero p { margin:19px 0 0; font:var(--fs-label)/1 var(--serif); text-transform:uppercase; }
.ruled-section { margin:0 var(--gutter); border-top:1px solid var(--ink); display:grid; grid-template-columns:25% 75%; }
.section-label { margin:19px 0 0; font:700 14px/1 var(--sans); text-transform:uppercase; }
.display-copy { min-width:0; width:100%; margin:19px 0 0; max-width:1015px; font:var(--fs-copy)/.98 var(--serif); text-transform:uppercase; }
.expertises { padding:151px var(--gutter) 0; }
.section-label--right { text-align:right; margin:0 0 29px; }
.practice { --practice-row-height:104px; width:100%; min-height:var(--practice-row-height); padding:0; border:0; border-top:1px solid var(--ink); background:transparent; display:grid; grid-template-columns:44px 1fr 35px; grid-template-rows:minmax(var(--practice-row-height),auto) auto; align-items:center; text-align:left; cursor:pointer; font-family:inherit; }
.practice:last-child { border-bottom:1px solid var(--ink); }
.practice-number { align-self:start; padding-top:18px; font:700 var(--fs-body)/1 var(--sans); }
.practice-title { font:var(--fs-display)/.95 var(--serif); text-transform:uppercase; letter-spacing:-.035em; transition:padding .25s ease; }
.plus { position:relative; width:35px; height:35px; display:block; }
.plus::before,.plus::after { content:""; position:absolute; background:var(--ink); left:0; top:16px; width:35px; height:2px; transition:transform .25s ease; }
.plus::after { transform:rotate(90deg); }
.practice .plus { opacity:0; transition:opacity .2s; }
.practice:hover .plus,.practice:focus-visible .plus { opacity:1; }
.practice[aria-expanded="true"] .plus::after { transform:rotate(0); }
.practice-detail { display:block; grid-column:2/3; max-width:700px; max-height:0; min-height:0; overflow:hidden; padding:0; opacity:0; font:var(--fs-body-lg)/1.35 var(--serif); transition:max-height .45s cubic-bezier(.22,1,.36,1),padding .45s cubic-bezier(.22,1,.36,1),opacity .25s ease; }
.practice[aria-expanded="true"] .practice-detail { max-height:320px; padding:0 0 22px; opacity:1; }
.team { padding:151px var(--gutter) 0; }
.team-grid { display:grid; grid-template-columns:repeat(4,1fr); column-gap:36px; row-gap:84px; align-items:start; }
.person { display:block; min-width:0; }
.portrait,.join-card { display:block; width:100%; aspect-ratio:315/425; border-radius:7px; background:var(--white); }
.portrait { overflow:hidden; }
.portrait img,.profile-portrait img { display:block; width:100%; height:100%; object-fit:cover; }
.team-grid > :nth-child(7) { grid-column:1; }
.person-meta { display:flex; justify-content:space-between; gap:10px; margin-top:12px; font:var(--fs-body)/1.2 var(--serif); }
.person-meta span:last-child { text-align:right; }
.person[href] .portrait { transition:box-shadow .2s, transform .2s; }
.person[href]:hover .portrait { transform:translateY(-4px); box-shadow:0 10px 28px rgba(33,33,33,.12); }
.join-card { min-width:0; padding:20px 26px; position:relative; overflow-wrap:anywhere; font:var(--fs-card)/.9 var(--serif); text-transform:uppercase; }
.join-card .plus { position:absolute; right:22px; bottom:22px; }
.news { padding:151px var(--gutter) 0; }
.news-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px; }
.news-item { min-width:0; padding-top:16px; border-top:1px solid var(--ink); }
.news-item h3 { margin:0; font:var(--fs-card)/1 var(--serif); text-transform:uppercase; overflow-wrap:anywhere; }
.news-item a { display:inline-block; margin-top:18px; font:700 14px/1 var(--sans); text-transform:uppercase; }
.contact { margin-top:179px; min-height:303px; }
.site-footer { padding:0 var(--gutter); }
.footer-main { min-height:232px; display:grid; grid-template-columns:25% 25% 25% 1fr; align-items:start; padding-top:63px; }
.footer-main .monogram { width:58px; }
address { margin:0; font:var(--fs-body)/2 var(--serif); font-style:normal; }
.socials { display:flex; justify-content:flex-end; gap:22px; align-items:center; font:700 var(--fs-icon)/1 var(--sans); }
.snapchat-icon img { display:block; width:36px; height:35px; }
.footer-bottom { height:84px; border-top:1px solid var(--ink); display:flex; justify-content:space-between; align-items:center; font:700 var(--fs-small)/1 var(--sans); text-transform:uppercase; }

.profile-page { min-height:1162px; max-width:1440px;margin:auto;padding:151px var(--gutter) 0; display:grid; grid-template-columns:549px minmax(0,666px); justify-content:space-between; gap:40px; align-items:start; }
.profile-portrait { width:100%; height:742px; background:#fff; border-radius:7px; }
.profile-portrait { overflow:hidden; }
.profile-content { padding-top:0; }
.back-link { display:inline-flex; align-items:center; gap:8px; margin:-5px 0 32px; font:700 14px/1 var(--sans); text-transform:uppercase; }
.back-link span { font:var(--fs-label)/1 var(--serif); }
.profile-content h1 { margin:0; font:var(--fs-display)/.95 var(--serif); letter-spacing:-.025em; text-transform:uppercase; }
.role { margin:4px 0 36px; font:var(--fs-body)/1 var(--serif); }
.profile-bio { font:var(--fs-body)/1.36 var(--serif); }
.profile-bio p { margin:0 0 20px; }
.profile-details { margin:60px 0 0; }
.profile-details>div { min-height:84px; border-top:1px solid var(--ink); display:grid; grid-template-columns:35% 65%; padding:10px 0; }
.profile-details dt { font:700 14px/1.2 var(--sans); text-transform:uppercase; }
.profile-details dd { margin:0; font:var(--fs-body)/1.35 var(--serif); }
.simple-page { min-height:850px; padding:150px var(--gutter); }
.simple-page h1 { max-width:1000px; margin:0 0 50px; font:var(--fs-display)/.95 var(--serif); text-transform:uppercase; }
.simple-page__text { max-width:760px; font:var(--fs-page-text)/1.45 var(--serif); }

@media (max-width:1280px) {
  #smooth-content { padding-top:90px; }
  .site-header { height:90px; padding:0 20px; grid-template-columns:50px 1fr 42px; }
  .site-header .monogram { width:44px; height:44px; }
  .main-nav { display:none; position:fixed; inset:0; padding:120px 20px 50px; background:var(--paper); flex-direction:column; align-items:flex-start; justify-content:flex-start; gap:28px; }
  .main-nav.is-open { display:flex; }
  .main-nav a::before { display:none; }
  .language { justify-self:end;}
  .menu-toggle { display:block; position:absolute; right:20px; width:30px; height:26px; padding:0; border:0; background:transparent; }
  .menu-toggle span { position:absolute; left:0; width:30px; height:2px; background:var(--ink); transition:.2s; }
  .menu-toggle span:first-child { top:8px; }
  .menu-toggle span:last-child { top:17px; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform:translateY(4.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform:translateY(-4.5px) rotate(-45deg); }
}

@media (max-width:900px) {
  :root { --gutter:20px; }
  .hero { height:440px; justify-content:center; padding:0 0 30px; }
  .wordmark { width:min(390px,78vw); }
  .hero p { font-size:clamp(15px,4.359vw,18px); }
  .ruled-section { grid-template-columns:1fr; }
  .section-label { margin-top:14px; }
  .display-copy { font-size:clamp(30px,7.5vw,48px); margin:44px 0 0; }
  .intro { min-height:500px; }
  .section-label--right { margin-bottom:18px; }
  .practice { --practice-row-height:82px; grid-template-columns:32px 1fr 25px; }
  .practice-number { font-size:clamp(10px,2.821vw,12px); }
  .practice-title { font-size:clamp(29px,7.5vw,55px); }
  .plus,.plus::before,.plus::after { width:25px; } .plus::before,.plus::after { top:12px; }
  .expertises,.team,.news { padding-top:110px; }
  .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 18px; }
  .news-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:50px 18px; }
  .person-meta { font-size:clamp(10px,3.077vw,13px); }
  .join-card { font-size:clamp(26px,7.692vw,34px); padding:16px; }
  .contact { margin-top:120px; min-height:360px; }
  .footer-main { grid-template-columns:1fr 1fr; gap:38px 20px; }
  .socials { justify-content:flex-start; }
  .profile-page { min-height:0; padding-top:80px; grid-template-columns:1fr; gap:50px; }
  .profile-portrait { height:auto; aspect-ratio:549/742; }
  .profile-content h1 { font-size:clamp(52px,13vw,76px); }
  .profile-details { margin-top:50px; }
}
@media (max-width:520px) {
  .practice-title { letter-spacing:-.045em; }
  .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .news-grid { grid-template-columns:1fr; }
  .person-meta { flex-direction:column; gap:3px; } .person-meta span:last-child { text-align:left; color:#666; }
  .footer-main { min-height:360px; grid-template-columns:1fr; gap:24px; }
  .footer-main .monogram { width:48px; height:48px; }
  .footer-bottom { font-size:clamp(9px,2.564vw,11px);margin-top: 34px; }
  .profile-details>div { grid-template-columns:1fr; gap:13px; padding:14px 0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
