:root{
  --page-margin: 30px;
  --gutter: 30px;
  --body: 1.5rem;
  --black: #111111;
  --white: #f1f1f1;
  --header-bg: transparent;  
  --header-fg: var(--black);
  --logo-bg: transparent; 
  --logo-stroke: currentColor; 
  --logo-fg: currentColor;
  --logo-hover-bg: currentColor;
  --logo-hover-fg: var(--white);
  --h1-heading: 5.625rem;
  --h2-heading: 3rem;
  --h3-heading: 1rem;
  --h4-heading: 0.95em;
  --p-body: 1.5rem;
  --line-height-p-body: 1.95rem;
  --line-height-h1-heading: 5.5rem; 
  --line-height-h2-heading: 3.3rem; 
  --sec-in-dur: 520ms;
  --sec-out-dur: 380ms;
  --sec-ease: cubic-bezier(.2,.8,.2,1);
  --sec-y: 22px;
}
/* =========================
   PAGE LOADER
   ========================= */
.loader{
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: grid;
  place-items: center;
  background: var(--white);
  color: var(--black);

  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
}

.loader.is-visible{
  opacity: 1;
  pointer-events: auto;
}

.loader.is-hiding{
  opacity: 0;
  pointer-events: none;
}

.loader__inner{
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 18px 22px;
}

.loader__logo{
  width: 60px;
  height: 60px;
  display: grid;
  place-items: center;
}

/* Progress variable (0..100) */
.loader{
  --p: 0; /* % */
}

/* Remplissage de la capsule (clip animé) */
.logo-fill{
  fill: currentColor;
  opacity: 0; /* subtil */
}

.pill-clip{
  transform-box: fill-box;
  transform-origin: center;
  transform: scale(calc(var(--p) / 100));
}

/* (Optionnel) Stroke “dessiné” au départ */
.logo-pill{
  stroke-dasharray: 358;
  stroke-dashoffset: calc(358 - (358 * (var(--p) / 100)));
  transition: stroke-dashoffset 120ms linear;
}

/* FK suit la couleur */
.logo-fk{ fill: currentColor; }

.loader__meta{
  display: grid;
  gap: 4px;
  line-height: 1;
}

.loader__pct{
  padding-top: 5px;
  font-size: var(--p-body);
  font-weight: 500;
  letter-spacing: 0.02em;
}

.loader__hint{
  font-size: var(--p-body);
  opacity: 1;
}

/* Bloque scroll quand loader visible */
html.is-loading,
body.is-loading{
  overflow: hidden;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .loader, .logo-pill{ transition: none !important; }
}
[data-anim="section"]{
  opacity: 1;
  transform: none;
}



 a {
  list-style: none;
  text-decoration: none;
   color: var(--black);
}
*,
*::before,
*::after {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
  overflow-x: clip; 
  font-family: 'Junctura Grotesk';
  background: var(--white);
}




/* marge extérieure */
.container{
  padding-left: var(--page-margin);
  padding-right: var(--page-margin);
}

/* gestion propre des gouttières UNIQUEMENT quand tu le demandes */
.grid.gutter-30{
  margin-left: calc(var(--gutter) / -2);
  margin-right: calc(var(--gutter) / -2);
}

.grid.gutter-30 > [class*="col"]{
  padding-left: calc(var(--gutter) / 2);
  padding-right: calc(var(--gutter) / 2);
}


.site-header nav.grid { align-items: center;  }
header {
  padding-top: 20px;
  min-height: 86px;
  font-size: var(--body);
  background: var(--header-bg);
  color: var(--header-fg);
}

/* overlay uniquement quand HERO + menu ouvert */
.site-header.is-hero{
  position: relative;
  z-index: 10;
}

/* overlay derrière le panel (sur le hero seulement) */
.site-header.is-hero.menu-open::after{
  content:"";
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.45); /* intensité overlay */
  z-index: 5;
}

/* Desktop only */
@media (min-width: 769px) {
  html.has-section-anim [data-anim="section"]{
    clip-path: inset(0 0 18% 0);
    transform: translateY(34px);
    transition:
      clip-path 820ms cubic-bezier(.22,1,.36,1),
      transform 820ms cubic-bezier(.22,1,.36,1);
    will-change: clip-path, transform;
  }

  html.has-section-anim [data-anim="section"].is-in{
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }

  /* Project page shells stay fully visible so the title and first row never get cropped.
     The internal media/meta blocks still animate once the section becomes .is-in. */
  html.has-section-anim .projets[data-anim="section"]{
    clip-path: inset(0 0 0 0);
    transform: none;
  }

  html.has-section-anim .projects .project-media,
  html.has-section-anim .projects .project-meta,
  html.has-section-anim .cta .cta-title,
  html.has-section-anim .cta .cta-text,
  html.has-section-anim .cta .cta-btn,
  html.has-section-anim .projets .projet-main-image,
  html.has-section-anim .projets .projet-side-meta,
  html.has-section-anim .projets .projet-media,
  html.has-section-anim .project-credits .credits-row,
  html.has-section-anim .more-projects .more-projects__head,
  html.has-section-anim .more-projects .more-project-card{
    clip-path: inset(0 0 22% 0);
    transform: translateY(26px);
    transition:
      clip-path 760ms cubic-bezier(.22,1,.36,1),
      transform 760ms cubic-bezier(.22,1,.36,1);
    will-change: clip-path, transform;
  }

  html.has-section-anim .projects .project-media,
  html.has-section-anim .projets .projet-main-image,
  html.has-section-anim .projets .projet-media,
  html.has-section-anim .more-projects .more-project-card{
    clip-path: inset(0 0 0 0);
    transition: transform 760ms cubic-bezier(.22,1,.36,1);
    will-change: transform;
  }

  html.has-section-anim .projects.is-in .project-media,
  html.has-section-anim .projects.is-in .project-meta,
  html.has-section-anim .cta.is-in .cta-title,
  html.has-section-anim .cta.is-in .cta-text,
  html.has-section-anim .cta.is-in .cta-btn,
  html.has-section-anim .projets.is-in .projet-main-image,
  html.has-section-anim .projets.is-in .projet-side-meta,
  html.has-section-anim .projets.is-in .projet-media,
  html.has-section-anim .project-credits.is-in .credits-row,
  html.has-section-anim .more-projects.is-in .more-projects__head,
  html.has-section-anim .more-projects.is-in .more-project-card{
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }

  html.has-section-anim .thumb-item{
    clip-path: inset(0 0 22% 0);
    transform: translateY(24px);
    transition:
      clip-path 700ms cubic-bezier(.22,1,.36,1),
      transform 700ms cubic-bezier(.22,1,.36,1);
    will-change: clip-path, transform;
  }

  /* stagger thumbnails */
  html.has-section-anim .projets.is-in .thumb-item:nth-child(1){ transition-delay: 60ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(2){ transition-delay: 120ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(3){ transition-delay: 180ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(4){ transition-delay: 240ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(5){ transition-delay: 300ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(6){ transition-delay: 360ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(7){ transition-delay: 420ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(8){ transition-delay: 480ms; }
  html.has-section-anim .projets.is-in .thumb-item:nth-child(9){ transition-delay: 540ms; }

  html.has-section-anim .projects.is-in .project:nth-of-type(1) .project-media{ transition-delay: 60ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(1) .project-meta{ transition-delay: 140ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(2) .project-media{ transition-delay: 220ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(2) .project-meta{ transition-delay: 300ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(3) .project-media{ transition-delay: 380ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(3) .project-meta{ transition-delay: 460ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(4) .project-media{ transition-delay: 540ms; }
  html.has-section-anim .projects.is-in .project:nth-of-type(4) .project-meta{ transition-delay: 620ms; }

  html.has-section-anim .cta.is-in .cta-title{ transition-delay: 80ms; }
  html.has-section-anim .cta.is-in .cta-text{ transition-delay: 170ms; }
  html.has-section-anim .cta.is-in .cta-btn{ transition-delay: 250ms; }

  html.has-section-anim .projets.is-in .projet-side-meta{ transition-delay: 90ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(1){ transition-delay: 60ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(2){ transition-delay: 140ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(3){ transition-delay: 220ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(4){ transition-delay: 300ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(5){ transition-delay: 380ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(6){ transition-delay: 460ms; }
  html.has-section-anim .projets.is-in .projet-main-image:nth-of-type(7){ transition-delay: 540ms; }
  html.has-section-anim .projets.is-in .projet-media:nth-of-type(1){ transition-delay: 260ms; }
  html.has-section-anim .projets.is-in .projet-media:nth-of-type(2){ transition-delay: 340ms; }

  html.has-section-anim .project-credits.is-in .credits-row:nth-child(1){ transition-delay: 70ms; }
  html.has-section-anim .project-credits.is-in .credits-row:nth-child(2){ transition-delay: 140ms; }
  html.has-section-anim .project-credits.is-in .credits-row:nth-child(3){ transition-delay: 210ms; }

  html.has-section-anim .more-projects.is-in .more-projects__head{ transition-delay: 60ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(1){ transition-delay: 120ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(2){ transition-delay: 200ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(3){ transition-delay: 280ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(4){ transition-delay: 360ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(5){ transition-delay: 440ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(6){ transition-delay: 520ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(7){ transition-delay: 600ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(8){ transition-delay: 680ms; }
  html.has-section-anim .more-projects.is-in .more-project-card:nth-child(9){ transition-delay: 760ms; }

  html.has-section-anim .thumb-item.is-in,
  html.has-section-anim .projets.is-in .thumb-item{
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }

 /* Archives */
  html.has-section-anim .archives-link{
    clip-path: inset(0 0 100% 0);
    transform: translateY(20px);
    transition:
      clip-path 720ms cubic-bezier(.22,1,.36,1),
      transform 720ms cubic-bezier(.22,1,.36,1);
    transition-delay: 140ms;
    will-change: clip-path, transform;
  }

  html.has-section-anim .cta-archives.is-in .archives-link{
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }

  html.page-ready .hero-scroll{
    animation: sectionIntroIn 760ms cubic-bezier(.22,1,.36,1) 80ms both;
  }

  html.page-ready .hero-content{
    animation: sectionIntroIn 820ms cubic-bezier(.22,1,.36,1) 160ms both;
  }

  html.page-ready .studio-title{
    animation: sectionIntroIn 760ms cubic-bezier(.22,1,.36,1) 80ms both;
  }

  html.has-section-anim .more-projects.is-in .more-projects__title.section-line::after{
    animation: lineDraw 700ms cubic-bezier(.2,.8,.2,1) 140ms forwards;
  }
}

@keyframes sectionIntroIn{
  0%{
    clip-path: inset(0 0 100% 0);
    transform: translateY(24px);
  }
  100%{
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }
}

@keyframes lineDraw{
  from { transform: scaleX(0); }
  to   { transform: scaleX(1); }
}
  /* wipe reveal: de bas vers haut, sans opacity */
  @keyframes footerWipeUp{
    0%{
      clip-path: inset(0 0 100% 0);
      transform: translateY(14px);
    }
    100%{
      clip-path: inset(0 0 0 0);
      transform: translateY(0);
    }
  }

  /* logo reveal: un wipe + une “assise” plus stable */
  @keyframes footerLogoReveal{
    0%{
      clip-path: inset(0 0 100% 0);
      transform: translateY(18px);
    }
    55%{
      clip-path: inset(0 0 0 0);
      transform: translateY(0);
    }
    100%{
      clip-path: inset(0 0 0 0);
      transform: translateY(0);
    }
  }

  /* optionnel: rend le reveal du logo extra propre */
  .footer-logo--reveal{
    overflow: hidden; /* important: masque le svg pendant le wipe */
  }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  html.has-section-anim [data-anim="section"]{
    transition: none !important;
    clip-path: inset(0 0 0 0) !important;
    transform: none !important;
  }

  html.page-ready .hero-scroll,
  html.page-ready .hero-content,
  html.page-ready .studio-title{
    animation: none !important;
    clip-path: inset(0 0 0 0) !important;
    transform: none !important;
  }

  .footer-reveal .footer-block,
  .footer-reveal .footer-legal,
  .footer-reveal .footer-bottom{
    transition: none !important;
    clip-path: inset(0 0 0 0) !important;
    transform: none !important;
  }
}

/* le panel au-dessus du scrim global */
.site-header.is-hero #mobilePanel{
  position: relative;
  z-index: 11;
}

/* PAS de bloc blanc */
.site-header.is-hero #mobilePanel.is-open{
  background: transparent;
  color: var(--white);
}

/* scrim dégradé derrière la liste */
.site-header.is-hero #mobilePanel.is-open::before{
  content:"";
  position: absolute;
  inset: 0;
  z-index: -1;

  /* dégradé: transparent en haut -> plus dense au centre -> transparent en bas */
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0) 0%,
    rgba(0,0,0,0.55) 18%,
    rgba(0,0,0,0.65) 55%,
    rgba(0,0,0,0) 100%
  );
  filter: blur(0px);
}


/* ÉTAT HERO (overlay) */
.site-header.is-hero{
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 20;
  background: transparent;
  color: var(--white);
  height: 86px;
}
.site-header.is-hero a{ color: var(--white);}


.site-header.is-hero{
  background: transparent;
  color: var(--white);
}

/* ÉTAT NORMAL (comme avant) */
.site-header.is-normal{
  background: var(--white);
  color: var(--black);
  z-index: 20;
}

.site-header{
    transition: transform 260ms ease, color 120ms linear, background-color 120ms linear;
  will-change: transform;
}

/* spacer: prend la hauteur du header quand il passe en fixed */
.header-spacer{
  height: 0;
}

/* quand on sort du hero et qu'on active le mode sticky */
.site-header.is-sticky{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 50;
  transform: translateY(0);
  transition: transform 260ms ease;
}

/* hidden (scroll down) */
.site-header.is-hidden{
  transform: translateY(-86px); /* tu peux mettre calc(-1 * var(--header-h)) si tu veux */
}

/* quand sticky actif => le spacer compense */
.header-spacer.is-active{
  height: 86px; /* sera remplacé par JS avec la vraie hauteur */
}

/* option: en état normal, fond blanc */
.site-header.is-normal{
  background: var(--white);
  color: var(--black);
}

.hero-sentinel{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
}


.header-nav{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  height: 100%;
}

.header-right{
  position: relative;
  left: 0;
  right: 0;
  display: flex;
  justify-content: flex-end;
}

.header-nav--right{
  justify-content: flex-start;
}

/* wrapper du burger */
.burger{
  position: absolute;
  width: 60px;
  height: 20px;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 0;
  right: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  color: currentColor; 
  top: -10px;
}


.burger__bar{
  position: absolute;
  left: 0;
  width: 60px;
  height: 2px;
  background: currentColor;
  display: block;
  transform-origin: center;
  transition: transform 220ms ease, top 220ms ease, opacity 180ms ease;
}

/* positions "burger" */
.burger__bar:nth-child(1){ top: 3px; }
.burger__bar:nth-child(2){ top: 15px; }

/* état ouvert -> X */
.burger[aria-expanded="true"] .burger__bar:nth-child(1){
  top: 9px;
  transform: rotate(45deg);
}
.burger[aria-expanded="true"] .burger__bar:nth-child(2){
  top: 9px;
  transform: rotate(-45deg);
}

/* --- MOBILE PANEL (sous le header) --- */
.mobile-panel{
  /* aligne avec tes marges de .container */
  padding-left: var(--page-margin);
  padding-right: var(--page-margin);
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transform: translateY(-6px);
  transition: max-height 280ms ease, opacity 200ms ease, transform 280ms ease;
}

/* ouvert */
.mobile-panel.is-open{
  max-height: 340px; /* ajuste si tu ajoutes plus d’items */
  opacity: 1;
  transform: translateY(0);
  background: var(--white);
}

.mobile-nav{
  list-style: none;
  margin: 0;
  padding: 18px 0 10px 0;
  display: none;
  gap: 14px;
}
header a{
  color: var(--header-fg);
  text-decoration: none;
}

#logo{
  padding-left: 0;
  left: 0;
  margin: 0;
  display: inline-flex;
  align-items: center;
  width: fit-content;
  color: var(--header-fg); /* clé: le SVG suit cette couleur */
}



/* état normal */
#logo .logo-pill{
  fill: var(--logo-bg);
  stroke: var(--logo-stroke);
  transition: fill 300ms ease-in-out, stroke 300ms ease-in-out;
}
#logo .logo-fk{
  fill: var(--logo-fg);
  transition: fill 300ms ease-in-out;
}

/* hover */
#logo:hover .logo-pill{
  fill: var(--logo-hover-bg);
}
#logo:hover .logo-fk{
  fill: var(--logo-hover-fg);
}

#logo .logo-svg{
  display: block;
  width: 60px;
  height: 60px;
}



.nav-link {
  text-decoration: none;
  position: relative;
  display: inline-block;
  color: inherit; /* suit header-fg */
}

/* Ligne cachée */
.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -3px; /* distance sous le texte */
  width: 100%;
  height: 1px; /* épaisseur du trait */
  background: currentColor;

  transform: scaleX(0);
  transform-origin: left;
  transition: transform 300ms ease-in-out;
}

/* Hover */
.nav-link:hover::after {
  transform: scaleX(1);
}


footer{
  min-height: 100vh;
  background: var(--black);
  color: var(--white);
  position: relative;
  bottom: 0;
  align-items: center;
}

.footer-inner{
  bottom: 0;
  align-content: flex-end;
  flex-direction: column;
  padding-top: 80px;
}

@media (min-width: 769px) {
  .footer-reveal{
    overflow: hidden;
  }

  .footer-reveal .footer-block,
  .footer-reveal .footer-legal,
  .footer-reveal .footer-bottom{
    clip-path: inset(0 0 100% 0);
    transform: translateY(28px);
    transition:
      clip-path 760ms cubic-bezier(.22,1,.36,1),
      transform 760ms cubic-bezier(.22,1,.36,1);
    will-change: clip-path, transform;
  }

  .footer-reveal.is-in .footer-block,
  .footer-reveal.is-in .footer-legal,
  .footer-reveal.is-in .footer-bottom{
    clip-path: inset(0 0 0 0);
    transform: translateY(0);
  }

  .footer-reveal.is-in .footer-block:nth-of-type(1){ transition-delay: 80ms; }
  .footer-reveal.is-in .footer-block:nth-of-type(2){ transition-delay: 150ms; }
  .footer-reveal.is-in .footer-block:nth-of-type(3){ transition-delay: 220ms; }
  .footer-reveal.is-in .footer-block:nth-of-type(4){ transition-delay: 290ms; }
  .footer-reveal.is-in .footer-legal{ transition-delay: 360ms; }
  .footer-reveal.is-in .footer-bottom{ transition-delay: 420ms; }
}

.footer a {color: var(--white);}
.footer p {
  font-size: var(--h3-heading);
}

.footer-title {
  font-weight: 600;
}

.footer-block {
  font-size: var(--p-body);
  line-height: var(  --line-height-p-body);
}
.footer-list{
  list-style: none;
  margin: 0;
  padding: 0;
}
.footer-list li{
  margin: 0;
  padding: 0;
}

/* si tu veux garder le “rythme” comme tes <br> */
.footer-list li + li{
  margin-top: 4px; /* ajuste */
}


.footer .container{
  max-width: none;  
  flex-direction: column;
}

.footer-bottom{
  padding-top: 262px;
}


/* Liens légaux */
.footer-legal{
  flex-direction: column;
  font-size: var( --h4-heading);
}

.footer-legal a{
  color: rgba(255,255,255,0.6);
  text-decoration:none;
  transition: color 200ms ease;
  margin-bottom: 4px;
}


.footer-logo svg {
  width: 100%;
  left: 0;
}

.footer-legal .copyright{
  display: inline-block;
  margin-top: 18px;
  padding: 0;
  color: var(--white);
  font-size: var(--h4-heading);
  font-weight: 400; /* ou ton style actuel */
}


.cta-archives{
  height: 40vh;
  background: #E2E2E2;
  padding: 73px 0;
}

.cta{
  height: 80vh;
  background: #E2E2E2;
  padding: 73px 0;
}

.cta-inner{
  display: flex;
  flex-direction: column;
  gap: 30px;
}

.cta-title{
  margin: 0;
  font-size: var(--h2-heading);
  line-height: var(--line-height-h2-heading);
  font-weight: 300;
  color: var(--black);
}

.cta-text{
  margin: 0;
  max-width: 405px; /* comme ton design */
  font-size: var(--h4-heading);
  line-height: 1.25;
  font-weight: 400;
  color: var(--black);
}

/* bouton capsule */
.cta-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  padding: 10px 22px;
  border-radius: 40px;
  border: 1px solid var(--black);
  color: var(--black);
  text-decoration: none;
  font-size: 18px;
  font-weight: 500;
  letter-spacing: 0.02em;
  width: fit-content;
}

.cta-btn:hover{
  background: var(--black);
  color: var(--white);
}

.studio-page{
  background: var(--black);
  color: var(--white);
  --header-bg: var(--black);
  --header-fg: var(--white);
  --logo-hover-bg: var(--white);
  --logo-hover-fg: var(--black);
}

.studio-page .loader{
  background: var(--black);
  color: var(--white);
}

.studio-page header,
.studio-page .site-header,
.studio-page .site-header.is-normal{
  background: var(--black);
  color: var(--white);
}

.studio-page .site-header.is-sticky{
  background: rgba(17,17,17,0.96);
  color: var(--white);
}

.studio-page .site-header a,
.studio-page #logo,
.studio-page #mobilePanel,
.studio-page #mobilePanel a{
  color: var(--white);
}

.studio-page #mobilePanel.is-open{
  background: var(--black);
}

.studio-page main a{
  color: var(--white);
}

.studio-main{
  padding-top: 72px;
  padding-bottom: 180px;
}

.studio-section{
  padding-bottom: 180px;
}

.studio-title-line{
  position: relative;
  padding-bottom: 28px;
}

.studio-title-line::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--white);
  transform: scaleX(0);
  transform-origin: left center;
}

html.page-ready .studio-page .studio-title-line::after{
  animation: lineDraw 700ms cubic-bezier(.2,.8,.2,1) 120ms forwards;
}

.studio-title{
  margin: 0;
  color: var(--white);
  font-size: var(--h1-heading);
  line-height: var(--line-height-h1-heading);
  font-weight: 300;
}

.studio-label{
  margin: 0;
  color: var(--white);
  font-size: var(--h6-heading);
  font-weight: 400;
}

.studio-copy{
  margin: 0;
  color: var(--white);
  font-size: var(--p-body);
  line-height: var(--line-height-p-body);
  font-weight: 400;
}

.studio-profile__content{
  display: grid;
  gap: 63px;
}

.studio-portrait picture,
.studio-portrait img{
  display: block;
  width: 100%;
  height: auto;
}

.studio-cards{
  row-gap: 72px;
}

.studio-card{
  display: grid;
}

.studio-card__title{
  margin: 0;
  color: var(--white);
  font-size: var(--h6-heading);
  font-weight: 600;
  height: 40px;
}

.studio-card__body{
  margin: 0;
  color: var(--white);
  font-size: var(--p-body);
  line-height: var(--line-height-p-body);
  font-weight: 400;
}

.studio-contact__link{
  text-decoration: underline;
  text-underline-offset: 0.18em;
  text-decoration-thickness: 1px;
}

.legal-page{
  background: #E2E2E2;
  color: var(--black);
}

.legal-page main a{
  color: var(--black);
}

.legal-main{
  padding-top: 72px;
  padding-bottom: 180px;
}

.legal-hero{
  padding-bottom: 120px;
}

.legal-title-line{
  position: relative;
  padding-bottom: 28px;
}

.legal-title-line::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  background: var(--black);
  transform: scaleX(0);
  transform-origin: left center;
}

html.page-ready .legal-title-line::after{
  animation: lineDraw 700ms cubic-bezier(.2,.8,.2,1) 120ms forwards;
}

.legal-title{
  margin: 0;
  color: var(--black);
  font-size: var(--h1-heading);
  line-height: var(--line-height-h1-heading);
  font-weight: 300;
}

.legal-section{
  padding-bottom: 120px;
}

.legal-label{
  margin: 0;
  color: var(--black);
  font-size: var(--h3-heading);
  font-weight: 500;
}

.legal-content{
  display: grid;
  gap: 24px;
}

.legal-copy,
.legal-list{
  margin: 0;
  color: var(--black);
  font-size: var(--p-body);
  line-height: var(--line-height-p-body);
  font-weight: 300;
}

.legal-list{
  list-style: none;
  padding: 0;
  display: grid;
  gap: 14px;
}

.legal-list li{
  margin: 0;
}

.legal-note{
  margin: 0;
  color: rgba(0,0,0,0.6);
  font-size: var(--h4-heading);
  line-height: 1.5;
  font-weight: 400;
}
/* accessibilité */
@media (prefers-reduced-motion: reduce){
}
.sr-only{
  
  position:absolute !important;
  width:1px; height:1px;
  padding:0; margin:-1px;
  overflow:hidden; clip:rect(0,0,0,0);
  white-space:nowrap; border:0;
}

.newsletter{
  font-family: 'Junctura Grotesk';
  width: 100%;
  display: grid;
  grid-template-columns: 1fr auto; /* input + bouton */
  align-items: stretch;
  background: var(--white);
  border-radius: 999px;
  overflow: hidden; /* important pour la capsule */
}

.newsletter__input{
  border: 0;
  background: #f4f4f4;
  font-size: var(--h4-heading); /* ajuste selon ton footer */
  font-weight: 400;
  line-height: 1.1;
  outline: none;
  padding-left: 30px;
  min-width: 0; /* important en grid pour éviter le débordement */
}

.newsletter__input:-webkit-autofill,
.newsletter__input:-webkit-autofill:hover,
.newsletter__input:-webkit-autofill:focus{
  -webkit-text-fill-color: var(--black);
  -webkit-box-shadow: 0 0 0 1000px #f4f4f4 inset;
  box-shadow: 0 0 0 1000px #f4f4f4 inset;
  transition: background-color 9999s ease-in-out 0s;
}

.newsletter__input::placeholder{
  color: rgba(0,0,0,0.35);
  font-family: 'Junctura Grotesk';
  font-size: var(--h4-heading);
  font-weight: 400;
  line-height: 1.1;
}

.newsletter__btn{
  -webkit-appearance: none;
  appearance: none;
  -webkit-tap-highlight-color: transparent;
  font-family: 'Junctura Grotesk';
  background: var(--white) !important;
  background-image: none;
  border: 1px solid var(--black);
  color: var(--black);
  transition:
    background-color 240ms ease,
    color 240ms ease,
    border-color 240ms ease,
    transform 240ms ease;
  padding: 18px 26px;
  font-size: 1rem;
  font-weight: 500;
  line-height: 1;
  text-transform: uppercase;
  cursor: pointer;
  border-radius: 999px;
  white-space: nowrap; /* garde le bouton sur une ligne */
}

.newsletter__btn:focus,
.newsletter__btn:focus-visible,
.newsletter__btn:active{
  background: var(--white) !important;
  color: var(--black) !important;
  border-color: var(--black);
  box-shadow: none;
}

.newsletter__btn:hover{
  background: var(--black);
  color: var(--white);
}

.newsletter__btn:disabled{
  cursor: default;
}

.newsletter.is-submitting .newsletter__btn,
.newsletter.is-success .newsletter__btn{
  background: var(--black);
  color: var(--white);
}

.newsletter.is-success .newsletter__input{
  color: rgba(0,0,0,0.45);
}


/* focus propre (clavier) */
.newsletter:focus-within{
  outline: 2px solid rgba(255,255,255,0.35);
  outline-offset: 6px;
}

.show-sm{ display: none; }


.copyright{
  margin-top: 20px;
  color: rgba(255,255,255,0.6);
}

.show-lg {display: block;}
.hide-md {display: none;}


/* HERO */
.hero{
  position: relative;
  min-height: 100vh;
  overflow: hidden;
  isolation: isolate; 
    margin-top: -186px;   /* remonte le hero sous le header */
  padding-top: 86px;   /* compense pour garder ton contenu */

}


.hero .container{
  position: relative;
  z-index: 2; /* au-dessus des images */
  height: 100%;
}

.hero-bottom{
  min-height: 100vh;        /* prend toute la hauteur du hero */
  align-items: flex-end;    /* colle le contenu en bas */
  padding-bottom: 30px;     /* même “rythme” que ta page */
}

.hero-title{
  margin: 0;
}

/* Dégradé TOP pour lisibilité du header (et du hero) */
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(0,0,0,0.82) 0%,
    rgba(0,0,0,0.52) 16%,
    rgba(0,0,0,0.22) 34%,
    rgba(0,0,0,0.00) 58%
  );
}

.hero::after{
  content:"";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(
    to top,
    rgba(0,0,0,0.52) 0%,
    rgba(0,0,0,0.24) 18%,
    rgba(0,0,0,0.00) 38%
  );
  mix-blend-mode: multiply;
}

/* Slider full bleed */
.hero-slide {
  position:absolute;
  inset:0;
  opacity:0;
  z-index:0;
  pointer-events:none;
  transition: opacity 0s; /* instant */
}

.hero-slide.is-active{
  opacity:1;
  z-index:1;
  pointer-events:auto;
}


.hero-slide img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Contenu au-dessus */
.hero-content{
  position: relative;
  z-index: 3;
  height: 100vh;
  display: flex;
  align-items: flex-end; /* texte en bas comme ta capture */
  padding-bottom: 60px;  /* ajuste */
}

.hero-title{
  margin: 0;
  color: var(--white);
  font-size: var(--h1-heading);
  line-height: var(--line-height-h1-heading);
  font-weight: 300;
}

/* Scroll icon (optionnel) */
.hero-scroll{
  left: var(--page-margin);
  bottom: 40px;
  z-index: 3;
  font-weight: 100;
  color: var(--white);
  font-size: 6rem;
  line-height: 1;
  cursor: pointer;
}

.hero-scroll--mobile{
  display: none;
}

.hero-scroll__svg{
  display: block;
  width: 100%;
  height: 100%;
}

@keyframes heroScrollFloat{
  0%, 100%{
    transform: translateY(0);
    opacity: 0.88;
  }
  50%{
    transform: translateY(8px);
    opacity: 1;
  }
}

.project {
  padding-top: 140px; /* ajuste selon ton rythme */
  padding-bottom: 140px;
  
}

/* Un projet = 2 rangées implicites :
   - rangée 1: image
   - rangée 2: meta
*/
.project {
  margin-bottom: 180px;
  margin-top: 80px;/* espace entre projets */
}

.projets-grid {padding-top: 10vh;}


.project-media{
  display: block;
}

.project-media img{
  width: 100%;
  height: auto;
  display: block;
}

/* Le bloc texte sous l’image */
.project-meta{
  display: block;
  padding-top: 18px;
  color: var(--black);
  text-decoration: none;
}

.project-name{
  font-size: var(--h4-heading);
  color: var(--black);
  font-weight: 400;
  padding-bottom: 12px;
}

.project-tagline{
  margin: 0;
  font-weight: 300;
  font-size: var(--h2-heading);     
  line-height: var(--line-height-h2-heading);
}


.projets {
  width: 100%;
  padding-top: 190px;

}

.projets-thumbnail {
  width: 100%;
  height: auto;
  display: block;
  padding: 0;
}

.projets-thumbnail {
  cursor: pointer;
}

.thumb-img{
  position: relative;
  overflow: hidden;
}

.thumb-img img{
  width: 100%;
  display: block;
}

/* image hover superposée */
.img-hover{
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .35s ease;
}

/* hover */
.projets-thumbnail:hover .img-hover{
  opacity: 1;
}
.projets-thumbnail img {
  width: 100%;
}

.projets h2 {
  font-size: var(--h3-heading);
  font-weight: 400;
  transition: color 0.2;
}


.projet-title.section-line{
  position: relative;
  font-size: var(--h1-heading);
  font-weight: 300;
  padding-bottom: 20px;
  margin: 0;
  border-bottom: none;
  clip-path: inset(0 0 0 0);
  transform: none;
}

.projet-title.section-line::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--black);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform 700ms cubic-bezier(.2,.8,.2,1);
}

.projet-title.section-line.is-in::after{
  transform: scaleX(0);
}

.projet-title.section-line.is-in{
  clip-path: inset(0 0 0 0);
  transform: none;
}

html.page-ready .projets .projet-title.section-line.is-in::after{
  animation: lineDraw 700ms cubic-bezier(.2,.8,.2,1) 120ms forwards;
}

/* =========================
   THUMBNAILS ANIMATE IN
   ========================= */

.thumb-item{
  clip-path: inset(0 0 0 0);
  transform: none;
}


.archives {
  font-size: var(--h1-heading);
  font-weight: 300;
  width: 100%;
}

.archives-link{
  padding-bottom: 6px;
}

.archives-link::after{
  bottom: 0;
}

.projets-wrapper {
  padding-top: 30px;
}

.projet-sheet__stack{
  display: grid;
  gap: 30px;
}

.projet-sheet__duo--loop .media-box{
  width: 100%;
  aspect-ratio: 1116 / 1360;
  overflow: hidden;
}

.projet-sheet__duo--loop .media-box picture,
.projet-sheet__duo--loop .media-box img,
.projet-sheet__duo--loop .media-box video{
  width: 100%;
  height: 100%;
  display: block;
}

.projet-sheet__duo--loop .media-box img{
  object-fit: cover;
}

.projet-sheet__duo--loop .media-box video{
  object-fit: contain;
}

.projet-main-image img {
  width: 100%;
  height: auto;
  display: block;
}

.projet-main-image picture,
.media-box picture{
  display: block;
}

.projet-side-meta {
  font-size: var(--h3-heading);
  line-height: 1.35;
  font-weight: 400;
  display: grid;
  gap: 6px;
  align-content: start;
}

.projet-side-meta p {
  margin: 0;
}

.projet-video{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

.custom-video-player{
  position: relative;
  overflow: hidden;
  background: #f5f2ee;
  color: var(--white);
}

.custom-video-player__controls{
  display: none;
}

.custom-video-player.is-enhanced .custom-video-player__controls{
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  align-content: end;
  gap: 18px;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 220ms ease;
  filter: drop-shadow(0 3px 14px rgba(0,0,0,0.22));
}

.custom-video-player.is-enhanced.is-ui-visible .custom-video-player__controls,
.custom-video-player.is-enhanced:focus-within .custom-video-player__controls{
  opacity: 1;
  pointer-events: auto;
}

.custom-video-player__center-play{
  appearance: none;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 3;
  width: 92px;
  height: 92px;
  margin: 0;
  border: 1px solid rgba(140,74,35,0.22);
  border-radius: 50%;
  background: rgba(241,241,241,0.92);
  color: #8c4a23;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transform: translate(-50%, -50%) scale(1);
  transition:
    opacity 220ms ease,
    transform 220ms ease,
    background-color 220ms ease,
    border-color 220ms ease;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  display: none;
}

.custom-video-player.is-enhanced .custom-video-player__center-play{
  display: inline-flex;
}

.custom-video-player__center-play:hover{
  background: rgba(241,241,241,0.98);
  border-color: rgba(140,74,35,0.34);
}

.custom-video-player.is-enhanced.is-playing .custom-video-player__center-play{
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, -50%) scale(0.94);
}

.custom-video-player__toolbar{
  display: flex;
  align-items: center;
  gap: 16px;
}

.custom-video-player__spacer{
  flex: 1;
}

.custom-video-player__time{
  font-size: 1rem;
  font-weight: 500;
  letter-spacing: 0.02em;
  white-space: nowrap;
}

.custom-video-player__icon-btn{
  appearance: none;
  border: 0;
  background: transparent;
  color: inherit;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: opacity 180ms ease;
}

.custom-video-player__icon-btn:hover{
  opacity: 0.72;
}

.custom-video-player .icon-pause,
.custom-video-player .icon-volume-off{
  display: none;
}

.custom-video-player.is-playing .icon-play,
.custom-video-player.is-muted .icon-volume{
  display: none;
}

.custom-video-player.is-playing .icon-pause,
.custom-video-player.is-muted .icon-volume-off{
  display: block;
}

.custom-video-player__progress,
.custom-video-player__volume{
  -webkit-appearance: none;
  appearance: none;
  width: 100%;
  height: 4px;
  border-radius: 999px;
  outline: none;
  background: linear-gradient(
    to right,
    var(--white) 0%,
    var(--white) var(--range-fill, 0%),
    rgba(255,255,255,0.3) var(--range-fill, 0%),
    rgba(255,255,255,0.3) 100%
  );
}

.custom-video-player__volume{
  width: 120px;
}

.custom-video-player__progress::-webkit-slider-thumb,
.custom-video-player__volume::-webkit-slider-thumb{
  -webkit-appearance: none;
  appearance: none;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 0;
  background: var(--white);
  cursor: pointer;
}

.custom-video-player__progress::-moz-range-thumb,
.custom-video-player__volume::-moz-range-thumb{
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 0;
  background: var(--white);
  cursor: pointer;
}

.custom-video-player__progress::-moz-range-track,
.custom-video-player__volume::-moz-range-track{
  height: 4px;
  border-radius: 999px;
  background: transparent;
}

.projet-media{
  display: block;
}

.media-box{
  width: 100%;
  aspect-ratio: auto;
  overflow: visible;
}

.media-box--fixed-ratio{
  overflow: hidden;
  background: #000;
}

.media-box img,
.media-box video{
  width: 100%;
  height: auto;
  object-fit: contain;
  display: block;
}

.media-box iframe{
  width: 100%;
  display: block;
  border: 0;
}

.media-box--fixed-ratio .projet-video{
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.media-box--fixed-ratio iframe{
  height: 100%;
}

/* =========================
   MORE PROJECTS CAROUSEL
   ========================= */

.more-projects{
  padding: 160px 0 120px 0;
  background: #E2E2E2;
  overflow: hidden;
}

.more-projects__head{
  align-items: center;
  margin-bottom: 40px;
}

.more-projects__head{
  align-items:center;
  margin-bottom:40px;
}

.more-projects__nav{
  display:flex;
  align-items: center;
  justify-content:flex-end;
  gap: 20px;
  font-weight: 600;

  transform:translateY(-8px);
}

.arrow{
  border:none;
  background:none;
  cursor:pointer;
  padding:0;
}

.arrow svg{
  width:64px;
  height:64px;
}

.more-projects__title{
  position: relative;
  margin: 0;
  padding-bottom: 24px;
  font-size: var(--h1-heading);
  line-height: var(--line-height-h1-heading);
  font-weight: 300;
}

.more-projects__title.section-line::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--black);
  transform: scaleX(0);
  transform-origin: left center;
}



.carousel-arrow,
.arrow{
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  color: var(--black);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 180ms ease, opacity 180ms ease;
}

.carousel-arrow:hover,
.arrow:hover{
  transform: translateY(-1px);
}

.carousel-arrow[disabled],
.arrow[disabled]{
  opacity: 0.25;
  pointer-events: none;
}

.carousel-arrow svg,
.arrow svg{
  display: block;
  width: 100%;
  height: auto;
}
.more-projects__carousel{
  width: 100%;
  overflow: hidden;
}

.more-projects__track{
  display: flex;
  gap: 30px;
  overflow-x: auto;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-bottom: 4px;
}

.more-projects__track::-webkit-scrollbar{
  display: none;
}

.more-project-card{
  flex: 0 0 calc((100% - 60px) / 3);
  min-width: 0;
  padding: 0;
}

.more-project-card__link{
  display: block;
  text-decoration: none;
  color: var(--black);
}

.more-project-card .thumb-img{
  position: relative;
  overflow: hidden;
}

.more-project-card img{
  width: 100%;
  display: block;
}

.more-project-card h2{
  margin: 14px 0 0 0;
  font-size: var(--h3-heading);
  font-weight: 400; /* au lieu de bold */
  line-height: 1.2;
}

.more-project-card .img-hover{
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity .35s ease;
}

.more-project-card:hover .img-hover{
  opacity: 1;
}

.project-credits{
  padding: 160px 0 0 0;
}

.project-section-label{
  margin: 0;
  color: var(--black);
  font-size: var(--h3-heading);
  font-weight: 500;
}

.project-credit-cards{
  row-gap: 72px;
}

.project-credit-card{
  display: grid;
  gap: 20px;
}

.project-credit-card__title{
  margin: 0;
  color: var(--black);
  font-size: var(--h3-heading);
  font-weight: 600;
}

.project-credit-card__body{
  margin: 0;
  color: var(--black);
  font-size: var(--p-body);
  line-height: var(--line-height-p-body);
  font-weight: 300;
}

.credits-table{
  display: flex;
  flex-direction: column;
}

.credits-row{
  align-items: center;
}

.credits-label{
  font-size: var(--h3-heading);
  font-weight: 600;
  color: var(--black);
}

.credits-value{
  font-size: var(--h3-heading);
  font-weight: 400;
  color: var(--black);
}

@media (max-width: 768px){
  .project-credits{
    padding: 100px 0 0 0;
  }

  .projet-sheet__duo--loop .media-box{
    aspect-ratio: auto;
  }

  .projet-sheet__duo--loop .media-box picture,
  .projet-sheet__duo--loop .media-box img,
  .projet-sheet__duo--loop .media-box video{
    height: auto;
  }

  .custom-video-player.is-enhanced .custom-video-player__controls{
    gap: 14px;
    padding: 18px;
  }

  .custom-video-player__center-play{
    width: 72px;
    height: 72px;
  }

  .custom-video-player__toolbar{
    gap: 12px;
    flex-wrap: wrap;
  }

  .custom-video-player__time{
    font-size: 0.9rem;
  }

  .custom-video-player__volume{
    width: 88px;
  }

  .project-section-label{
    padding-bottom: 18px;
  }

  .project-credit-cards{
    row-gap: 42px;
  }

  .project-credit-card{
    gap: 18px;
  }

  .credits-row{
    padding: 16px 0;
    align-items: flex-start;
  }

  .credits-label{
    padding-bottom: 8px;
  }

  .credits-label,
  .credits-value{
    font-size: var(--h4-heading);
  }
}
/* tablette */
@media (max-width: 1024px){
  .more-project-card{
    flex: 0 0 calc((100% - 30px) / 2);
  }
}

/* mobile */
@media (max-width: 768px){
  .more-project-card{
    flex: 0 0 85%;
  }

  .more-project-card h2{
    font-size: var(--h3-heading);
    font-weight: 400;
  }
}
/* mobile */
@media (max-width: 768px){
  .more-projects{
    padding: 100px 0 80px 0;
  }

  .more-projects__title{
    font-size: var(--h2-heading);
    line-height: var(--line-height-h2-heading);
  }

  .more-projects__head{
    margin-bottom: 24px;
  }

  .more-projects__nav{
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: center;
    column-gap: 10px;
    row-gap: 0;
    width: 100%;
    padding-top: 18px;
    padding-bottom: 0;
  }

  .more-projects__link{
    margin-left: 0;
    justify-self: end;
    text-align: right;
    white-space: nowrap;
    flex-shrink: 0;
  }

  .carousel-arrow svg{
    width: 56px;
    height: 12px;
  }

  .more-project-card{
    flex: 0 0 85%;
  }
}
/* MOBILE : tout stack en 1 colonne */
@media (max-width: 768px){
  .project{ margin-bottom: 60px; }

  .project .col-4,
  .project .col-8{
    flex: 0 0 100%;
    max-width: 100%;
  }

  .project-meta{
    padding-top: 14px;
  }

  .studio-main{
    padding-top: 36px;
    padding-bottom: 110px;
  }

  .legal-main{
    padding-top: 36px;
    padding-bottom: 110px;
  }

  .studio-section{
    padding-bottom: 110px;
  }

  .legal-hero,
  .legal-section{
    padding-bottom: 90px;
  }

  .studio-title-line{
    padding-bottom: 22px;
  }

  .legal-title-line{
    padding-bottom: 22px;
  }

  .studio-title{
    font-size: var(--h2-heading);
    line-height: var(--line-height-h2-heading);
  }

  .legal-title{
    font-size: var(--h2-heading);
    line-height: var(--line-height-h2-heading);
  }

  .studio-label{
    padding-bottom: 18px;
  }

  .legal-label{
    padding-bottom: 18px;
  }

  .studio-copy,
  .studio-card__body{
    font-size: var(--p-body);
    line-height: var(--line-height-p-body);
    font-weight: 400;
  }

  .legal-copy,
  .legal-list{
    font-size: 1.125rem;
    line-height: 1.55;
  }

  .studio-profile__content{
    gap: 36px;
  }

  .studio-card{
    gap: 18px;
  }

  .studio-cards{
    row-gap: 42px;
  }
}

/* Responsive : sur mobile, on enlève l’offset */
@media (max-width: 768px){

  .hero{
    width: 100%;
    min-height: calc(100dvh + 86px);
    height: calc(100dvh + 86px);
    margin-top: -86px;
  }
  .hero-bottom{
    min-height: calc(100dvh + 86px);
    position: relative;
  }
  .hero-content{
    height: calc(100dvh + 86px);
  }
  .hero-scroll.hide-sm{
    display: none !important;
  }
  .hero-scroll--mobile.show-sm{
    display: flex !important;
    position: absolute;
    left: var(--page-margin);
    bottom: 90px;
    z-index: 4;
    width: 40px;
    height: 92px;
    align-items: flex-end;
    color: var(--white);
    pointer-events: none;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.28));
    animation: heroScrollFloat 1.9s ease-in-out infinite;
  }
  .footer .col-4_md-6_sm-9.footer-block.footer-item{
    flex: 0 0 100%;
    max-width: 100%;
  }
  .footer .newsletter{
    width: 100%;
  }
  .footer .col-4{ display: none; } /* enlève l’offset */
  .footer-name{ line-height: .9; }
    .newsletter__input{ padding: 14px 18px; font-size: var(--h4-heading); }
  .newsletter__btn{ padding: 14px 18px; font-size: 1rem; }
  .footer .col-10{ flex: 0 0 83.3333%; max-width: 83.3333%; }
.footer .col-2 { flex: 0 0 16.6667%; max-width: 16.6667%; }
   .hide-sm{ display: none !important; }
  .show-sm{ display: block !important;}
  .mobile-nav {list-style: none; display: block; }
  .burger {display: block; }
  .footer-block {margin-top: 80px;}
  .footer-bottom{ padding-top: 0;}
  .mobile-nav li {padding-top: 20px; font-size: var(--h2-heading);}
    .projets h1.section-line::after{
    transform: scaleX(1) !important;
  }
  
 .archives, 
.projets h1.section-line {font-size: var(--h2-heading);}

  .thumb-item,
  .archives-link{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }

  .more-projects__title.section-line::after{
    transform: scaleX(1);
  }
    .projet-title.section-line::after{
    transform: scaleX(1);
  }
}
