@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Fraunces:opsz,wght@9..144,400;9..144,500&display=swap');

:root {
  --ink: #202a32;
  --blue: #29445a;
  --paper: #f5f1eb;
  --white: #fffdf9;
  --muted: #72777a;
  --line: rgba(32, 42, 50, .14);
  --orange: #ff6117;

  --container-width: 1240px;
  --gutter: 48px;

  --font-body: "DM Sans", Arial, sans-serif;
  --font-display: Fraunces, Georgia, serif;
}

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
}

a {
  color: inherit;
}

img {
  display: block;
  max-width: 100%;
}


/* ==================================================
   LAYOUT
   ================================================== */

.container {
  width: min(var(--container-width), calc(100% - var(--gutter)));
  margin-inline: auto;
}


/* ==================================================
   HEADER & NAVIGATION
   ================================================== */

.site-header {
  position: absolute;
  z-index: 10;
  inset: 0 0 auto;
  padding: 26px 0;
  color: white;
}

.site-header--light {
  position: relative;
  color: var(--ink);
  background: var(--white);
  border-bottom: 1px solid var(--line);
}

.site-header--light .menu-toggle {
  color: var(--ink);
  background: rgba(255, 253, 249, .85);
  border: 1px solid rgba(32, 42, 50, .18);
}

.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand {
  display: flex;
  align-items: center;
  gap: 13px;
  text-decoration: none;
}

.brand-mark {
  width: 46px;
  height: 46px;
  min-width: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 6px;
  border-radius: 50%;
  background: rgba(255, 253, 249, .98);
  box-shadow: 0 1px 0 rgba(32, 42, 50, .08);
}

.brand-mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.brand-name {
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.nav {
  display: flex;
  gap: 28px;
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.nav a {
  text-decoration: none;
  opacity: .88;
}

.nav a:hover {
  opacity: 1;
}


/* ==================================================
   MOBILE MENU
   ================================================== */

.menu-toggle {
  display: none;
  width: 44px;
  height: 44px;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  border: 0;
  border-radius: 50%;
  background: rgba(15, 20, 24, .22);
  color: white;
  cursor: pointer;
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

.menu-toggle span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: currentColor;
  transition: transform .22s ease, opacity .22s ease;
}

.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  flex-direction: column;
  padding: 24px 24px 34px;
  background: var(--white);
  color: var(--ink);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s ease, visibility .22s ease;
}

.mobile-menu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.mobile-menu-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.mobile-menu-close {
  padding: 8px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

.mobile-menu-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 18px;
  margin: auto 0;
}

.mobile-menu-links a {
  font-family: var(--font-display);
  font-size: clamp(34px, 9vw, 54px);
  line-height: 1.05;
  letter-spacing: -.035em;
  text-decoration: none;
}

.mobile-menu-foot {
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
}

body.menu-open {
  overflow: hidden;
}


/* ==================================================
   HERO
   ================================================== */

.hero {
  position: relative;
  display: grid;
  min-height: 100svh;
  align-items: end;
  overflow: hidden;
  background: #111;
}

.hero-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 42%;
  opacity: .83;
}

.hero-photo {
  transition: opacity 0.8s ease-in-out;
  opacity: 1;
}

.hero-photo.fade-out {
  opacity: 0;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(8, 12, 15, .48) 0%,
      rgba(8, 12, 15, .10) 45%,
      rgba(8, 12, 15, .82) 100%
    );
}

.hero-content {
  position: relative;
  z-index: 1;
  max-width: 900px;
  padding: 150px 0 72px;
  color: white;
}

.kicker {
  margin-bottom: 20px;
  font-size: 11px;
  letter-spacing: .28em;
  text-transform: uppercase;
  opacity: .8;
}

.hero h1 {
  margin: 0;
  font-family: var(--font-display);
  font-size: clamp(58px, 9vw, 128px);
  font-weight: 400;
  line-height: .9;
  letter-spacing: -.045em;
}

.hero h1 em {
  color: #f5e8df;
  font-style: normal;
}

.hero-baseline {
  max-width: 620px;
  margin: 30px 0 34px;
  font-family: var(--font-display);
  font-size: clamp(21px, 2.5vw, 30px);
  line-height: 1.25;
}

.cta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 13px 19px;
  border: 1px solid rgba(255, 255, 255, .55);
  font-size: 12px;
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
  transition: .2s;
}

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

.scroll {
  position: absolute;
  z-index: 2;
  right: 24px;
  bottom: 32px;
  color: white;
  font-size: 10px;
  letter-spacing: .2em;
  text-transform: uppercase;
  writing-mode: vertical-rl;
  opacity: .7;
}


/* ==================================================
   SHARED TYPOGRAPHY
   ================================================== */

.section-label {
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .24em;
  text-transform: uppercase;
}

.lead {
  max-width: 680px;
  margin: 0;
  font-size: 21px;
  line-height: 1.55;
}

.bodycopy {
  max-width: 640px;
  color: #62686b;
}

.bodycopy strong {
  color: var(--ink);
}


/* ==================================================
   APPROACH
   ================================================== */

.intro {
  padding: 130px 0 120px;
  background: var(--white);
}

.intro-grid {
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  gap: 80px;
  align-items: start;
}

.intro h2,
.statement h2 {
  margin: 14px 0;
  font-family: var(--font-display);
  font-size: clamp(38px, 5vw, 68px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.035em;
}


/* ==================================================
   TRAVAIL / HISTOIRES
   ================================================== */

.work {
  padding: 115px 0;
  background: var(--paper);
}

.work-head {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  align-items: end;
  margin-bottom: 50px;
}

.work-head h2 {
  margin: 12px 0 0;
  font-family: var(--font-display);
  font-size: clamp(42px, 5vw, 72px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.04em;
}

.work-head p {
  max-width: 370px;
  margin: 0;
  color: var(--muted);
}

.stories {
  border-top: 1px solid var(--line);
}

.story {
  display: grid;
  grid-template-columns: 1.12fr .88fr;
  min-height: 590px;
  border-bottom: 1px solid var(--line);
}

.story-reverse {
  grid-template-columns: .88fr 1.12fr;
}

.story-reverse .story-image {
  order: 2;
}

.story-reverse .story-copy {
  order: 1;
}

.story-image {
  display: block;
  min-height: 590px;
  overflow: hidden;
  background: #ddd;
}

.story-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s cubic-bezier(.2, .7, .2, 1);
}

.story-image:hover img {
  transform: scale(1.025);
}

.story-copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 70px clamp(35px, 6vw, 90px);
}

.story-number {
  margin-bottom: 48px;
  color: var(--muted);
  font-size: 11px;
  letter-spacing: .2em;
}

.story-copy h3 {
  margin: 12px 0 24px;
  font-family: var(--font-display);
  font-size: clamp(38px, 4.5vw, 62px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.04em;
}

.story-copy p {
  max-width: 520px;
  margin: 0 0 30px;
  color: #62686b;
}

.story-link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: max-content;
  padding-bottom: 7px;
  border-bottom: 1px solid var(--ink);
  font-size: 12px;
  letter-spacing: .14em;
  text-decoration: none;
  text-transform: uppercase;
}

.story-link span {
  font-size: 17px;
  line-height: 0;
}




/* ==================================================
   PRESTATIONS
   ================================================== */

.services {
  padding: 120px 0;
  background: var(--blue);
  color: white;
}

.services-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 80px;
}

.services h2 {
  margin: 12px 0;
  font-family: var(--font-display);
  font-size: clamp(42px, 5vw, 70px);
  font-weight: 400;
  line-height: 1;
}

.services-intro {
  max-width: 520px;
  color: #d8e0e4;
}

.service-list {
  border-top: 1px solid rgba(255, 255, 255, .22);
}

.service {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 18px;
  padding: 27px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .22);
}

.service-number {
  padding-top: 8px;
  font-size: 11px;
  letter-spacing: .18em;
  opacity: .6;
}

.service h3 {
  margin: 0 0 6px;
  font-family: var(--font-display);
  font-size: 30px;
  font-weight: 400;
}

.service p {
  margin: 0;
  color: #d8e0e4;
}


/* ==================================================
   ABOUT
   ================================================== */

.about {
  padding: 120px 0;
  background: var(--paper);
}

.about-grid {
  display: grid;
  grid-template-columns: 360px 1fr;
  gap: 90px;
  align-items: center;
}

.about-photo {
  width: 320px;
  height: 320px;
  overflow: hidden;
  border-radius: 50%;
  background: #ddd;
}

.about-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.about h2 {
  margin: 14px 0 24px;
  font-family: var(--font-display);
  font-size: clamp(42px, 5vw, 70px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.04em;
}

.about-copy {
  max-width: 680px;
}

.about-copy p {
  margin: 0 0 18px;
  color: #62686b;
}

.about-copy .lead {
  margin-bottom: 24px;
  color: var(--ink);
}

.about-page .content .intro {
  background: transparent;
  padding: 0;
  font-family: Fraunces, Georgia, serif;
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.3;
  color: var(--ink);
  margin: 0 0 58px;
}


/* ==================================================
   STATEMENT / POURQUOI SLOW
   ================================================== */

.statement {
  padding: 135px 0;
  background: var(--white);
}

.statement-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 90px;
}

.statement h2 {
  max-width: 760px;
}

.statement-copy {
  padding-top: 14px;
}

.acronym {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 3px 15px;
  margin-top: 35px;
}

.acronym b {
  font-family: var(--font-display);
  font-size: 25px;
  font-weight: 400;
}

.acronym span {
  padding-top: 6px;
  color: #62686b;
  font-size: 13px;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.statement-link {
  display: inline-block;
  margin-top: 32px;
  padding-bottom: 5px;
  border-bottom: 1px solid var(--ink);
  font-size: 11px;
  letter-spacing: .12em;
  text-decoration: none;
  text-transform: uppercase;
  transition: opacity .2s ease;
}

.statement-link:hover {
  opacity: .55;
}


/* ==================================================
   CONTACT
   ================================================== */

.contact {
  position: relative;
  overflow: hidden;
  padding: 120px 0;
  background: #111;
  color: white;
}

.contact::before {
  content: "";
  position: absolute;
  top: -160px;
  right: -180px;
  width: 520px;
  height: 520px;
  border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 50%;
}

.contact-inner {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: end;
}

.contact h2 {
  margin: 12px 0;
  font-family: var(--font-display);
  font-size: clamp(50px, 6vw, 88px);
  font-weight: 400;
  line-height: .95;
}

.contact p {
  max-width: 520px;
  color: #c7c9ca;
}

.contact-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
}

.contact-links a {
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(255, 255, 255, .4);
  font-size: 18px;
  text-decoration: none;
}

.contact-links a:hover {
  border-color: white;
}

.contact-small {
  color: #8f9497;
  font-size: 11px;
  letter-spacing: .2em;
  text-transform: uppercase;
}


/* ==================================================
   FOOTER
   ================================================== */

footer {
  padding: 28px 0 35px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  background: #111;
  color: #858b8e;
  font-size: 10px;
}

.footer-inner {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
}

.footer-links {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}

.footer-links a {
  text-decoration: none;
}

.footer-links a:hover {
  color: white;
}


/* ==================================================
   RESPONSIVE — TABLET
   ================================================== */

@media (max-width: 1000px) {
  .nav {
    display: none;
  }

  .menu-toggle {
    display: flex;
  }

  .site-header {
    padding: 18px 0;
  }

  .brand-name {
    display: none;
  }

  .mobile-menu .brand-mark {
    width: 42px;
    height: 42px;
    min-width: 42px;
  }
}

@media (max-width: 800px) {
  :root {
    --gutter: 32px;
  }

  .site-header {
    padding: 18px 0;
  }

  .hero-content {
    padding: 130px 0 48px;
  }

  .scroll {
    display: none;
  }

  .intro,
  .work,
  .services,
  .about,
  .statement,
  .contact {
    padding: 82px 0;
  }

  .intro-grid,
  .services-grid,
  .statement-grid,
  .contact-inner {
    grid-template-columns: 1fr;
    gap: 42px;
  }

  .work-head {
    display: block;
  }

  .work-head p {
    margin-top: 20px;
  }

  .story,
  .story-reverse {
    grid-template-columns: 1fr;
    min-height: 0;
  }

  .story-image,
  .story-reverse .story-image {
    order: 1;
    min-height: 360px;
    height: 58vw;
    max-height: 560px;
  }

  .story-copy,
  .story-reverse .story-copy {
    order: 2;
    padding: 55px 0 70px;
  }

  .story-number {
    margin-bottom: 28px;
  }

  .about-grid {
    grid-template-columns: 1fr;
    gap: 45px;
  }

  .about-photo {
    width: 240px;
    height: 240px;
    margin: auto;
  }

  .footer-inner {
    display: block;
  }

  .footer-credit {
    margin-top: 12px;
  }

  .lead {
    font-size: 19px;
  }
}


/* ==================================================
   RESPONSIVE — MOBILE
   ================================================== */

@media (max-width: 480px) {
  :root {
    --gutter: 32px;
  }

  .gallery {
    grid-template-columns: 1fr;
  }

  .story-image,
  .story-reverse .story-image {
    height: 360px;
    min-height: 360px;
  }

  .story-copy,
  .story-reverse .story-copy {
    padding: 45px 0 60px;
  }

  .hero h1 {
    font-size: 62px;
  }
}


/* ABOUT PAGE — scoped */
.about-page body.menu-open{overflow:hidden}
.about-page .top{padding:28px 0;border-bottom:1px solid var(--line);background:var(--white)}
.about-page .top-inner{display:flex;justify-content:space-between;align-items:center;gap:25px;position:relative}
.about-page .brand{display:flex;align-items:center;gap:13px;text-decoration:none}
.about-page .brand-mark, .about-page .mark{width:46px!important;height:46px!important;min-width:46px;border-radius:50%;background:rgba(255,253,249,.98)!important;padding:6px!important;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:0 1px 0 rgba(32,42,50,.08)}
.about-page .brand-mark img, .about-page .mark img{width:100%!important;height:100%!important;display:block;object-fit:contain}
.about-page .brand-name{font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.about-page .nav{display:flex;align-items:center;gap:28px}
.about-page .nav a{font-size:11px;letter-spacing:.1em;text-decoration:none;text-transform:uppercase}
.about-page .nav a:hover{opacity:.55}
.about-page .menu-toggle{display:none;border:0;background:transparent;padding:8px;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.about-page .menu-toggle span{display:block;width:22px;height:1.5px;background:currentColor;transition:transform .22s ease,opacity .22s ease}
.about-page .mobile-menu{position:fixed;inset:0;z-index:100;background:var(--white);color:var(--ink);display:flex;flex-direction:column;padding:24px 24px 34px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s ease,visibility .22s ease}
.about-page .mobile-menu.is-open{opacity:1;visibility:visible;pointer-events:auto}
.about-page .mobile-menu-head{display:flex;justify-content:space-between;align-items:center}
.about-page .mobile-menu-close{border:0;background:none;font:inherit;font-size:28px;line-height:1;cursor:pointer;padding:8px}
.about-page .mobile-menu-links{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-top:auto;margin-bottom:auto}
.about-page .mobile-menu-links a{font-family:Fraunces,Georgia,serif;font-size:clamp(34px,9vw,54px);line-height:1.05;text-decoration:none;letter-spacing:-.035em}
.about-page .mobile-menu-foot{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.about-page .page{padding:100px 0 130px}
.about-page .label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.about-page h1{font-family:Fraunces,Georgia,serif;font-size:clamp(52px,8vw,100px);font-weight:400;line-height:.94;letter-spacing:-.045em;margin:14px 0 55px;max-width:850px}
.about-page .content-grid{display:grid;grid-template-columns:320px 1fr;gap:80px;border-top:1px solid var(--line);padding-top:55px}
.about-page .portrait{width:320px;height:320px;border-radius:50%;overflow:hidden;background:#ddd}
.about-page .portrait img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.about-page .content{max-width:700px; background: transparent; }
.about-page .content .intro{font-family:Fraunces,Georgia,serif;font-size:clamp(22px,2.6vw,32px);line-height:1.3;color:var(--ink);margin:0 0 58px}
.about-page .content h2{font-family:Fraunces,Georgia,serif;font-size:40px;font-weight:400;line-height:1.05;margin:0 0 24px}
.about-page .content h2:not(:first-of-type){margin-top:76px}
.about-page .content p{max-width:650px;color:#62686b;margin:0 0 20px}
.about-page .content strong{color:var(--ink)}
.about-page .slow-intro{margin-bottom:34px!important}
.about-page .slow-letter{border-top:1px solid var(--line);padding:25px 0 8px}
.about-page .slow-letter h3{font-family:Fraunces,Georgia,serif;font-size:28px;font-weight:400;line-height:1.1;margin:0 0 12px}
.about-page .slow-letter p{margin-bottom:18px}
.about-page .signature{margin-top:55px!important;font-family:Fraunces,Georgia,serif;font-size:26px!important;line-height:1.2;color:var(--ink)!important}
.about-page .signature strong{font-weight:400}
.about-page footer{background:#111;color:#858b8e;padding:28px 0 35px;font-size:10px}
.about-page .footer-inner{display:flex;justify-content:space-between;gap:25px;align-items:center}
.about-page .footer-links{display:flex;gap:15px;flex-wrap:wrap}
.about-page .footer-links a{text-decoration:none}

@media(max-width:1000px){.about-page .nav{display:none!important}
.about-page .menu-toggle{display:flex!important;color:var(--ink);border:1px solid rgba(32,42,50,.18);border-radius:50%;background:rgba(255,253,249,.85);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.about-page .top, .about-page .top-inner{padding:18px 0}
.about-page .top-inner{display:flex}
.about-page .brand-name{display:none}
.about-page .mobile-menu .brand-mark{width:42px!important;height:42px!important;min-width:42px}
}

@media(max-width:800px){.about-page .page{padding:70px 0 90px}
.about-page .content-grid{grid-template-columns:1fr;gap:45px}
.about-page .portrait{width:240px;height:240px}
.about-page .content .intro{margin-bottom:48px}
.about-page .content h2{font-size:36px}
.about-page .content h2:not(:first-of-type){margin-top:60px}
.about-page .footer-inner{display:block}
.about-page .footer-links{margin-bottom:12px}
}
/* ==================================================
   HEADER DES PAGES REPORTAGE
   ================================================== */

.report-page > header {
  padding: 28px 0;
  background: var(--white);
  border-bottom: 1px solid var(--line);
}

.report-page > header .head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 25px;
}

.report-page > header .mark {
  width: 46px;
  height: 46px;
  min-width: 46px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  padding: 6px;
  border-radius: 50%;
  background: rgba(255, 253, 249, .98);
  box-shadow: 0 1px 0 rgba(32, 42, 50, .08);
}

.report-page > header .mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.report-page > header .name {
  font-size: 12px;
  letter-spacing: .22em;
  text-transform: uppercase;
}

.report-page > header .nav {
  display: flex;
  align-items: center;
  gap: 28px;
  font-size: 11px;
  letter-spacing: .1em;
  text-transform: uppercase;
}

.report-page > header .nav a {
  text-decoration: none;
}

.report-page > header .nav a:hover {
  opacity: .55;
}

.report-page > header .menu-toggle {
  display: none;
  color: var(--ink);
  border: 1px solid rgba(32, 42, 50, .18);
  border-radius: 50%;
  background: rgba(255, 253, 249, .85);
}

/* ==================================================
   PAGES REPORTAGE — styles spécifiques
   Les règles sont volontairement scoped pour ne pas
   modifier la page d'accueil ni la page About.
   ================================================== */


/* ---------- Reportages classiques ---------- */

.report-page .hero {
  min-height: auto;
  display: block;
  overflow: visible;
  background: transparent;
  padding: 80px 0 30px;
}

.report-page .hero::after {
  display: none;
}

.report-page .meta {
  font-size: 11px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--muted);
}

.report-page .hero h1 {
  font-family: var(--font-display);
  font-size: clamp(54px, 8vw, 110px);
  font-weight: 400;
  line-height: .92;
  letter-spacing: -.05em;
  margin: 16px 0 30px;
  max-width: 1000px;
}

.report-page .hero .intro {
  max-width: 760px;
  margin: 0;
  padding: 0;
  background: transparent;
  font-family: var(--font-display);
  font-size: clamp(23px, 2.8vw, 34px);
  line-height: 1.3;
}

/* GALERIE DESKTOP (Grid au lieu de CSS Columns) */


/* GALERIE BUREAU — Colonnes décalées (Masonry) */
.report-page .gallery {
  -webkit-columns: 2;
  columns: 2;
  -webkit-column-gap: 14px;
  column-gap: 14px;
  padding-bottom: 30px;
  /* Stabilise le rendu et empêche les décalages d'affichage sous WebKit/Safari */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

.report-page .gallery figure {
  display: block;
  width: 100%;
  margin: 0 0 14px;
  -webkit-column-break-inside: avoid;
  page-break-inside: avoid;
  break-inside: avoid;
  background: transparent;
}

.report-page .gallery figure img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Bannière panoramique (prend toute la largeur) */
.report-page .gallery figure.banner {
  -webkit-column-span: all;
  column-span: all;
  width: 100%;
  margin-bottom: 14px;
}




.report-page .copy {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 90px;
  padding: 100px 0;
  border-top: 1px solid var(--line);
}

.report-page .copy h2 {
  font-family: var(--font-display);
  font-size: clamp(40px, 5vw, 68px);
  font-weight: 400;
  line-height: 1;
  margin: 0;
}

.report-page .copy p {
  max-width: 680px;
  color: #62686b;
  margin: 0 0 18px;
}

.report-page > footer {
  border-top: 1px solid var(--line);
  padding: 55px 0 70px;
}

.report-page > footer a {
  text-decoration: none;
  font-size: 12px;
  letter-spacing: .14em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 7px;
}

@media (max-width: 800px) {
  /* On désactive les colonnes sur mobile et on empile proprement */
  .report-page .gallery {
    -webkit-columns: 1 !important;
    columns: 1 !important;
    display: block !important;
  }

  .report-page .gallery figure {
    width: 100% !important;
    margin: 0 0 16px 0 !important;
  }

  .report-page .gallery figure.banner {
    -webkit-column-span: none !important;
    column-span: none !important;
  }

  /* Force la bannière à occuper les 2 colonnes du Grid mobile */
.report-page .gallery figure.banner {
    -webkit-column-span: all !important;
    column-span: all !important;
    width: 100% !important;
  }
}


/* ---------- Page « Le couteau » ---------- */

.knife-page .container {
  width: min(1100px, calc(100% - 48px));
}

.knife-page .page {
  padding: 100px 0 130px;
}

.knife-page .label {
  font-size: 11px;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--muted);
}

.knife-page .page > .container > h1 {
  font-family: var(--font-display);
  font-size: clamp(52px, 8vw, 100px);
  font-weight: 400;
  line-height: .94;
  letter-spacing: -.045em;
  margin: 14px 0 55px;
  max-width: 850px;
}

.knife-page .page > .container > .intro {
  font-family: var(--font-display);
  font-size: clamp(22px, 2.6vw, 32px);
  line-height: 1.3;
  max-width: 760px;
  margin: 0 0 65px;
  padding: 0;
  background: transparent;
}

.knife-page .content-grid {
  display: grid;
  grid-template-columns: 1fr 1.5fr;
  gap: 80px;
  border-top: 1px solid var(--line);
  padding-top: 55px;
}

.knife-page .content h2 {
  font-family: var(--font-display);
  font-size: 40px;
  font-weight: 400;
  line-height: 1.05;
  margin: 0 0 24px;
}

.knife-page .content p {
  max-width: 650px;
  color: #62686b;
  margin: 0 0 20px;
}

.knife-page .portrait {
  width: 320px;
  height: 320px;
  border-radius: 50%;
  overflow: hidden;
  background: #ddd;
}

.knife-page .portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%;
}

.knife-page .contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}

.knife-page .contact-card {
  border-top: 1px solid var(--line);
  padding-top: 25px;
}

.knife-page .contact-card h2 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 40px;
  margin: 0 0 25px;
}

.knife-page .contact-links {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
}

.knife-page .contact-links a {
  font-size: 18px;
  text-decoration: none;
  border-bottom: 1px solid var(--ink);
  padding-bottom: 4px;
}

.knife-page .small {
  font-size: 12px;
  color: var(--muted);
  margin-top: 45px;
}

.knife-page > footer {
  background: #111;
  color: #858b8e;
  padding: 28px 0 35px;
  font-size: 10px;
}

.knife-page .footer-inner {
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
}

.knife-page .footer-links {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}

.knife-page .footer-links a {
  text-decoration: none;
}

.knife-page .knife-gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 55px 0;
}

.knife-page .knife-gallery figure {
  margin: 0;
}

.knife-page .knife-gallery figure:first-child {
  grid-column: span 2;
}

.knife-page .knife-gallery img {
  width: 100%;
  height: auto;
  display: block;
}

.knife-page .knife-gallery figcaption {
  font-size: 10px;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--muted);
  margin-top: 10px;
}

@media (max-width: 1000px) {
  .report-page > header {
    padding: 18px 0;
  }

  .report-page > header .nav {
    display: none !important;
  }

  .report-page > header .menu-toggle {
    display: flex !important;
    color: var(--ink);
  }

  .report-page > header .name {
    display: none;
  }

  .report-page > header .head {
    padding: 0;
  }
}

@media (max-width: 800px) {
  .report-page > header {
    padding: 18px 0;
  }

  .report-page .hero {
    padding: 55px 0 65px;
  }

  /* FORÇAGE ABSOLU DES 2 COLONNES SUR MOBILE */


  .report-page .gallery figure {
    width: 100% !important;
    margin: 0 0 14px 0 !important;
    -webkit-column-break-inside: avoid !important;
    page-break-inside: avoid !important;
    break-inside: avoid !important;
  }

  .report-page .gallery img,
  .report-page .gallery figure img {
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    object-fit: contain !important;
  }

  .report-page .copy {
    grid-template-columns: 1fr;
    gap: 35px;
    padding: 70px 0;
  }

  .report-page > footer {
    padding: 45px 0 55px;
  }
}


/* ==================================================
   FOOTER COMMUN — inclusion PHP
   ================================================== */

.site-footer {
  background: #111;
  color: #858b8e;
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 28px 0 35px;
  font-size: 10px;
}

.site-footer-inner {
  width: min(var(--container-width), calc(100% - var(--gutter)));
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  gap: 25px;
  align-items: center;
}

.site-footer .footer-links {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}

.site-footer .footer-links a {
  text-decoration: none;
}

.site-footer .footer-links a:hover {
  color: white;
}

@media (max-width: 800px) {
  .site-footer-inner {
    display: block;
  }

  .site-footer .footer-credit {
    margin-top: 12px;
  }
}

/* Contact bêta : espace vertical de la zone principale. */
.contact-page-space { padding: 80px 0 110px; }


/* ========================================
   BANNIERE PANORAMIQUE
   ======================================== */

/* Bannière panoramique */
.report-page .gallery figure.banner {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  overflow: visible !important;
}

.report-page .gallery figure.banner img {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  object-fit: contain !important;
  aspect-ratio: auto !important;
  display: block !important;
}


@media (max-width: 768px) {
  /* On passe la galerie sur une seule colonne */
  .gallery {
    display: flex !important;
    flex-direction: column !important;
    gap: 1.5rem !important;
  }

  /* Chaque image prend 100% de la largeur disponible */
  .gallery figure {
    width: 100% !important;
    margin: 0 !important;
  }

  .gallery img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }
}