/* ============================================================
   FOLIA — Studio de management de projet immobilier
   Palette: vert forêt #0c4525 + sauge #dbddb0 + ivoire #f6f4ec
   ============================================================ */

:root {
  --forest: #082a1c;
  --forest-deep: #051c13;
  --forest-soft: #0d3d2a;
  --sage: #dbddb0;
  --sage-deep: #c4c790;
  --ivory: #f6f4ec;
  --paper: #ffffff;
  --ink: #1a1a1a;
  --ink-mute: #6b6b66;
  --line: rgba(12, 69, 37, 0.12);
  --line-sage: rgba(219, 221, 176, 0.22);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
  font-family: "Inter", -apple-system, system-ui, sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}

.serif {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  letter-spacing: -0.01em;
}

.serif-italic {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-weight: 400;
}

.mono {
  font-family: "JetBrains Mono", "Courier New", monospace;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

/* ─── Layout helpers ─── */
.wrap {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 80px;
}

@media (max-width: 900px) {
  .wrap { padding: 0 24px; }
}

/* ─── Buttons ─── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 18px 28px;
  border-radius: 4px;
  font-family: "Inter", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  cursor: pointer;
  border: 1px solid transparent;
  line-height: 1;
  transition: all 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
  position: relative;
  overflow: hidden;
}
.btn-dark {
  background: var(--ink);
  color: var(--sage);
}
.btn-dark:hover {
  background: var(--sage);
  color: var(--forest);
  transform: translateY(-1px);
}
.btn-sage {
  background: var(--sage);
  color: var(--forest);
}
.btn-sage:hover {
  background: var(--paper);
  color: var(--forest);
}
.btn-ghost {
  background: transparent;
  color: var(--sage);
  border: 1px solid var(--line-sage);
}
.btn-ghost:hover {
  background: var(--sage);
  color: var(--forest);
  border-color: var(--sage);
}
.btn-ghost-dark {
  background: transparent;
  color: var(--forest);
  border: 1px solid var(--line);
}
.btn-ghost-dark:hover {
  background: var(--forest);
  color: var(--sage);
  border-color: var(--forest);
}
.btn .arrow {
  display: inline-block;
  transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.btn:hover .arrow { transform: translateX(4px); }

/* ─── Reveal on scroll ─── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal.is-in {
  opacity: 1;
  transform: translateY(0);
}
.reveal-stagger > * {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.9s ease, transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.reveal-stagger.is-in > *:nth-child(1) { transition-delay: 0.05s; }
.reveal-stagger.is-in > *:nth-child(2) { transition-delay: 0.15s; }
.reveal-stagger.is-in > *:nth-child(3) { transition-delay: 0.25s; }
.reveal-stagger.is-in > *:nth-child(4) { transition-delay: 0.35s; }
.reveal-stagger.is-in > *:nth-child(5) { transition-delay: 0.45s; }
.reveal-stagger.is-in > *:nth-child(6) { transition-delay: 0.55s; }
.reveal-stagger.is-in > * {
  opacity: 1;
  transform: translateY(0);
}

/* ─── NAV ─── */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  background: var(--forest);
  transition: padding 0.4s ease, background 0.4s ease, backdrop-filter 0.4s ease;
}
.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 28px 80px;
  transition: padding 0.4s ease;
}
.nav.scrolled {
  background: rgba(12, 69, 37, 0.72);
  backdrop-filter: saturate(140%) blur(14px);
  -webkit-backdrop-filter: saturate(140%) blur(14px);
  box-shadow: none;
}
.nav.scrolled .nav-inner { padding: 12px 80px; }

.nav-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  line-height: 1;
  transition: opacity 0.25s ease;
}
.nav-logo img {
  height: 56px;
  width: auto;
  display: block;
  transition: height 0.4s ease;
}
.nav.scrolled .nav-logo img { height: 44px; }
.nav-logo:hover { opacity: 0.85; }

/* burger — hidden on desktop */
.nav-burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 10px;
  z-index: 120;
}
.nav-burger span {
  display: block;
  height: 1.5px;
  width: 100%;
  background: var(--sage);
  border-radius: 2px;
  transition: transform 0.35s ease, opacity 0.25s ease;
}
.nav.menu-open .nav-burger span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.nav.menu-open .nav-burger span:nth-child(2) { opacity: 0; }
.nav.menu-open .nav-burger span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* mobile drawer */
.nav-drawer {
  display: none;
  flex-direction: column;
  gap: 4px;
  padding: 0 24px;
  max-height: 0;
  overflow: hidden;
  background: var(--forest);
  transition: max-height 0.45s cubic-bezier(0.2, 0.8, 0.2, 1), padding 0.4s ease;
}
.nav-drawer.open {
  max-height: 80vh;
  padding: 12px 24px 32px;
  border-top: 1px solid var(--line-sage);
}
.nav-drawer-link {
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.02em;
  color: var(--sage);
  text-decoration: none;
  padding: 18px 0;
  border-bottom: 1px solid var(--line-sage);
}
.nav-drawer-cta {
  margin-top: 24px;
  text-align: center;
  padding: 18px;
  border-radius: 3px;
  background: var(--sage);
  color: var(--forest);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
}

@media (max-width: 900px) {
  .nav-inner { padding: 16px 24px; }
  .nav.scrolled .nav-inner { padding: 12px 24px; }
  .nav-links { display: none; }
  .nav-burger { display: flex; }
  .nav-drawer { display: flex; }
  .nav-logo img { height: 40px; }
  .nav.scrolled .nav-logo img { height: 36px; }
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 40px;
}
.nav-link {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--sage);
  text-decoration: none;
  position: relative;
  padding: 4px 0;
  transition: opacity 0.25s ease;
}
.nav-link::after {
  content: "";
  position: absolute;
  left: 0; right: 100%;
  bottom: -2px;
  height: 1px;
  background: var(--sage);
  transition: right 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.nav-link:hover::after { right: 0; }

.nav-cta {
  padding: 12px 22px;
  border-radius: 2px;
  background: var(--ink);
  color: var(--sage);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  transition: all 0.3s ease;
}
.nav-cta:hover {
  background: var(--sage);
  color: var(--forest);
}
.nav.scrolled .nav-link { font-size: 11px; opacity: 0.85; }
.nav.scrolled .nav-cta {
  background: transparent;
  border: 1px solid var(--line-sage);
  padding: 8px 16px;
  font-size: 11px;
}
.nav.scrolled .nav-cta:hover {
  background: var(--sage);
  color: var(--forest);
  border-color: var(--sage);
}

/* ─── HERO ─── */
.hero {
  background: var(--forest);
  color: var(--sage);
  padding: 180px 0 120px;
  position: relative;
  overflow: hidden;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1fr 480px;
  gap: 80px;
  align-items: center;
}
.hero-eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 36px;
  color: var(--sage);
  opacity: 0.85;
}
.hero-eyebrow .line {
  width: 40px;
  height: 1px;
  background: var(--sage);
  opacity: 0.5;
}
.hero h1 {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: clamp(48px, 5.4vw, 78px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--sage);
  margin-bottom: 32px;
}
.hero h1 em {
  font-style: italic;
  font-weight: 300;
}
.hero-lede {
  font-size: 18px;
  line-height: 1.6;
  color: var(--sage);
  opacity: 0.78;
  max-width: 520px;
  margin-bottom: 48px;
}
.hero-actions {
  display: flex;
  gap: 16px;
  align-items: center;
  flex-wrap: wrap;
}

.hero-arch {
  position: relative;
  width: 100%;
  aspect-ratio: 464 / 680;
  border-radius: 232px 232px 8px 8px;
  background:
    linear-gradient(180deg, rgba(196,212,233,0) 0%, rgba(196,212,233,0) 20%, rgba(196,212,233,1) 24%, rgba(196,212,233,0) 34%),
    var(--img-hero, none) 54% bottom / 150% auto no-repeat,
    linear-gradient(180deg, #b3c6dd 0%, #c4d4e9 100%);
  box-shadow: 0 30px 80px -20px rgba(0,0,0,0.4);
}
.hero-arch::before {
  content: "";
  position: absolute;
  inset: -14px;
  border: 1px solid var(--line-sage);
  border-radius: 240px 240px 12px 12px;
  pointer-events: none;
}

.hero-meta {
  position: absolute;
  bottom: 60px;
  left: 80px;
  right: 80px;
  display: flex;
  justify-content: space-between;
  align-items: end;
  color: var(--sage);
  opacity: 0.6;
  pointer-events: none;
}
.hero-meta .col { font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; }
.hero-meta .col strong { display: block; font-weight: 400; opacity: 0.6; margin-bottom: 4px; }

@media (max-width: 900px) {
  .hero { padding: 120px 0 72px; }
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .hero-arch { width: 100%; max-width: 340px; margin: 0 auto; }
  .hero-meta { position: static; padding: 32px 0 0; flex-wrap: wrap; gap: 16px; }
  .hero-actions { gap: 12px; }
  .hero-actions .btn { width: 100%; justify-content: center; }
}

/* ─── MARQUEE strip ─── */
.marquee {
  background: var(--forest);
  border-top: 1px solid var(--line-sage);
  border-bottom: 1px solid var(--line-sage);
  overflow: hidden;
  padding: 22px 0;
}
.marquee-track {
  display: flex;
  gap: 80px;
  white-space: nowrap;
  animation: scroll 38s linear infinite;
  width: max-content;
}
.marquee-item {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-weight: 300;
  font-size: 28px;
  color: var(--sage);
  display: flex;
  align-items: center;
  gap: 80px;
}
.marquee-item::after {
  content: "✦";
  font-style: normal;
  font-size: 14px;
  opacity: 0.5;
}
@keyframes scroll {
  to { transform: translateX(calc(-50% - 40px)); }
}

/* ─── STUDIO section ─── */
.studio {
  background: var(--paper);
  padding: 140px 0;
  color: var(--ink);
}
.studio-grid {
  display: grid;
  grid-template-columns: 200px 1fr 1fr;
  gap: 80px;
}
.studio-eyebrow { padding-top: 6px; }
.studio-eyebrow .label { color: var(--ink-mute); }
.studio-headline {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: clamp(36px, 3.4vw, 48px);
  line-height: 1.12;
  letter-spacing: -0.015em;
  color: var(--forest);
}
.studio-headline em { font-style: italic; }
.studio-body { font-size: 16px; line-height: 1.75; color: var(--ink-mute); }
.studio-body p + p { margin-top: 18px; }
.studio-body strong { color: var(--ink); font-weight: 500; }

.founder {
  margin-top: 80px;
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 80px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
}
.founder-photo {
  width: 200px;
  height: 240px;
  background: var(--ivory);
  border-radius: 100px 100px 6px 6px;
  position: relative;
  overflow: hidden;
}
.founder-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.founder-photo .initials {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 96px;
  color: var(--forest);
  opacity: 0.4;
}
.founder-photo .ph-stripes {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(135deg, transparent 0 18px, rgba(12,69,37,0.04) 18px 19px);
}
.founder-info {
  padding-top: 12px;
  max-width: 640px;
}
.founder-info .name {
  font-family: "Inter", sans-serif;
  font-size: 28px;
  color: var(--forest);
  margin-bottom: 6px;
  letter-spacing: -0.01em;
}
.founder-info .role {
  font-size: 13px;
  color: var(--ink-mute);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  margin-bottom: 24px;
}
.founder-info .quote {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 22px;
  line-height: 1.45;
  color: var(--ink);
}

@media (max-width: 900px) {
  .studio { padding: 80px 0; }
  .studio-grid { grid-template-columns: 1fr; gap: 32px; }
  .founder { grid-template-columns: 1fr; gap: 32px; }
}

/* ─── APPROCHE A→Z ─── */
.approche {
  background: var(--ivory);
  padding: 140px 0;
  position: relative;
}
.section-head {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 80px;
  margin-bottom: 80px;
  align-items: end;
}
.section-head h2 {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: clamp(40px, 4.2vw, 64px);
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--forest);
  max-width: 760px;
}
.section-head h2 em { font-style: italic; }

.steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
}
.step {
  padding: 40px 32px 40px 0;
  border-right: 1px solid var(--line);
  position: relative;
  transition: background 0.3s ease;
}
.step:last-child { border-right: none; padding-right: 0; }
.step:nth-child(n+2) { padding-left: 32px; }
.step:hover { background: rgba(12,69,37,0.025); }

.step-num {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 14px;
  color: var(--forest);
  opacity: 0.5;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.step-num .num-line {
  flex: 1;
  height: 1px;
  background: var(--line);
  max-width: 40px;
}
.step h3 {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: var(--forest);
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}
.step p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-mute);
}
.step ul {
  list-style: none;
  margin-top: 20px;
  padding: 0;
}
.step ul li {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ink-mute);
  padding: 7px 0;
  border-top: 1px solid var(--line);
  display: flex;
  gap: 8px;
}
.step ul li::before {
  content: "—";
  color: var(--forest);
  opacity: 0.4;
}

@media (max-width: 900px) {
  .approche { padding: 80px 0; }
  .section-head { grid-template-columns: 1fr; gap: 24px; margin-bottom: 48px; }
  .steps { grid-template-columns: 1fr; }
  .step { border-right: none; border-bottom: 1px solid var(--line); padding: 32px 0 !important; }
  .step:last-child { border-bottom: none; }
}

/* ─── PROJECTS ─── */
.projects {
  background: var(--paper);
  padding: 140px 0;
}
.project-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.project {
  cursor: pointer;
  position: relative;
}
.project-thumb {
  position: relative;
  aspect-ratio: 394 / 317;
  border-radius: 6px;
  overflow: hidden;
  background: var(--ivory);
}
.project-thumb img,
.project-thumb .img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.9s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.project:hover .project-thumb img,
.project:hover .project-thumb .img { transform: scale(1.04); }
.project-thumb::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(12,69,37,0.5));
  opacity: 0;
  transition: opacity 0.4s ease;
}
.project:hover .project-thumb::after { opacity: 1; }

.project-info {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 18px 4px 0;
}
.project-info .meta { color: var(--ink-mute); }
.project-name {
  font-family: "Inter", sans-serif;
  font-size: 22px;
  color: var(--forest);
  letter-spacing: -0.01em;
}
.project-tag {
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-mute);
}

/* placeholder image */
.img-placeholder {
  position: absolute;
  inset: 0;
  background:
    repeating-linear-gradient(135deg, transparent 0 24px, rgba(12,69,37,0.04) 24px 25px),
    var(--ivory);
  display: flex;
  align-items: center;
  justify-content: center;
}
.img-placeholder span {
  font-family: "JetBrains Mono", monospace;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--forest);
  opacity: 0.5;
  background: var(--paper);
  padding: 6px 10px;
  border-radius: 2px;
}

@media (max-width: 900px) {
  .projects { padding: 80px 0; }
  .project-grid { grid-template-columns: 1fr; gap: 20px; }
}

/* ─── POUR QUI ─── */
.audience {
  background: var(--forest);
  color: var(--sage);
  padding: 140px 0;
}
.audience .section-head h2 { color: var(--sage); }
.audience .section-head .label { color: var(--sage); opacity: 0.6; }

.audience-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.audience-card {
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--line-sage);
  border-radius: 6px;
  padding: 48px 40px;
  transition: all 0.4s ease;
  cursor: pointer;
}
.audience-card:hover {
  background: rgba(255,255,255,0.07);
  transform: translateY(-4px);
}
.audience-card .num {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 14px;
  opacity: 0.6;
  margin-bottom: 32px;
}
.audience-card h3 {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: 36px;
  line-height: 1.1;
  letter-spacing: -0.01em;
  margin-bottom: 20px;
  color: var(--sage);
}
.audience-card h3 em { font-style: italic; }
.audience-card p {
  font-size: 15px;
  line-height: 1.7;
  opacity: 0.78;
  margin-bottom: 28px;
}
.audience-card ul { list-style: none; padding: 0; }
.audience-card ul li {
  padding: 10px 0;
  border-top: 1px solid var(--line-sage);
  font-size: 13px;
  letter-spacing: 0.02em;
  display: flex;
  gap: 12px;
  align-items: center;
  color: var(--sage);
  opacity: 0.85;
}
.audience-card ul li::before {
  content: "✦";
  font-size: 9px;
  opacity: 0.6;
}

@media (max-width: 900px) {
  .audience { padding: 80px 0; }
  .audience-grid { grid-template-columns: 1fr; }
  .audience-card { padding: 32px 24px; }
}

/* ─── TESTIMONIAL / FULL BLEED ─── */
.bleed {
  position: relative;
  height: 80vh;
  min-height: 560px;
  background: var(--img-bleed, url("img/full-bleed.jpg")) center/cover no-repeat;
}
.bleed::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(12,69,37,0.15) 0%, rgba(12,69,37,0.4) 100%);
}
.bleed-watermark {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  z-index: 2;
  line-height: 0;
}
.bleed-watermark img {
  display: block;
  width: auto;
  height: 56vh;
  max-height: 460px;
  opacity: 0.9;
}
.bleed-watermark-OLD {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 280px;
  color: var(--sage);
  opacity: 0.85;
  z-index: 2;
  line-height: 1;
}
.bleed-quote {
  position: absolute;
  bottom: 60px;
  left: 80px;
  right: 80px;
  z-index: 3;
  color: var(--sage);
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
}
.bleed-quote .quote-text {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 28px;
  line-height: 1.3;
  max-width: 560px;
}
.bleed-quote .quote-meta {
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: right;
}
.bleed-quote .quote-meta .name { display: block; margin-bottom: 4px; opacity: 0.9; }
.bleed-quote .quote-meta .role { opacity: 0.6; }

@media (max-width: 900px) {
  .bleed-watermark img { height: 40vh; max-height: 320px; }
  .bleed-quote { left: 24px; right: 24px; bottom: 32px; flex-direction: column; align-items: flex-start; }
  .bleed-quote .quote-text { font-size: 20px; }
}

/* ─── CONTACT ─── */
.contact {
  background: var(--ivory);
  padding: 160px 0;
  text-align: center;
  position: relative;
}
.contact .label { color: var(--ink-mute); margin-bottom: 24px; display: block; }
.contact h2 {
  font-family: "Inter", sans-serif;
  font-weight: 400;
  font-size: clamp(48px, 6vw, 96px);
  line-height: 1.0;
  letter-spacing: -0.025em;
  color: var(--forest);
  margin-bottom: 48px;
  max-width: 1100px;
  margin-left: auto;
  margin-right: auto;
}
.contact h2 em { font-style: italic; }
.contact-actions {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 80px;
}
.contact-info {
  display: flex;
  justify-content: center;
  gap: 80px;
  padding-top: 40px;
  border-top: 1px solid var(--line);
  flex-wrap: wrap;
  max-width: 720px;
  margin: 0 auto;
}
.contact-info .item .lbl {
  display: block;
  color: var(--ink-mute);
  margin-bottom: 8px;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.contact-info .item .val {
  font-family: "Inter", sans-serif;
  font-size: 22px;
  color: var(--forest);
}

@media (max-width: 900px) {
  .contact { padding: 80px 0; }
  .contact-actions { flex-direction: column; align-items: stretch; }
  .contact-actions .btn { width: 100%; justify-content: center; }
  .contact-info { gap: 32px; flex-direction: column; align-items: center; text-align: center; }
}

/* ─── FOOTER ─── */
.footer {
  background: var(--forest-deep);
  color: var(--sage);
  padding: 80px 0 32px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 64px;
  border-bottom: 1px solid var(--line-sage);
}
.footer-brand .logo {
  font-family: "Inter", sans-serif;
  font-style: italic;
  font-size: 56px;
  margin-bottom: 16px;
  line-height: 1;
}
.footer-logo-img {
  height: 64px;
  width: auto;
  display: block;
  margin-bottom: 24px;
}
.footer-brand p {
  font-size: 13px;
  line-height: 1.6;
  opacity: 0.7;
  max-width: 320px;
}
.footer-col h4 {
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
  opacity: 0.55;
  margin-bottom: 20px;
}
.footer-col ul { list-style: none; padding: 0; }
.footer-col ul li { padding: 6px 0; }
.footer-col ul li a {
  color: var(--sage);
  text-decoration: none;
  font-size: 14px;
  opacity: 0.85;
  transition: opacity 0.2s ease;
}
.footer-col ul li a:hover { opacity: 1; }

.footer-bottom {
  display: flex;
  justify-content: space-between;
  padding-top: 32px;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 0.55;
}

@media (max-width: 900px) {
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-bottom { flex-direction: column; gap: 12px; }
}

/* selection */
::selection { background: var(--sage); color: var(--forest); }

#approche .section-head,#projets .section-head,#pour-qui .section-head{grid-template-columns:1fr;justify-items:center;text-align:center}
#approche .section-head>.mono,#projets .section-head>.mono,#pour-qui .section-head>.mono{display:none}
#approche .section-head h2,#projets .section-head h2,#pour-qui .section-head h2{margin:0 auto}
/* no italics anywhere on the site */
em, i, .serif-italic, .quote, .quote-text, [class*="italic"] { font-style: normal !important; }
* { font-style: normal !important; }

/* ============================================================
   WOW EFFECTS (intensité subtile)
   ============================================================ */

/* 1 — Titres lettre par lettre */
.sr-word { display: inline-block; white-space: nowrap; }
.sr-char {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.42em);
  transition: opacity 0.6s ease, transform 0.75s cubic-bezier(0.2, 0.8, 0.2, 1);
  will-change: opacity, transform;
}
.sr-in .sr-char { opacity: 1; transform: translateY(0); }

/* 2 — Révélation de l'arche héro (voile vert rétractable) */
.arch-reveal {
  position: absolute;
  inset: 0;
  background: var(--forest);
  border-radius: inherit;
  transform-origin: top;
  transform: scaleY(1);
  z-index: 2;
}
.fx-arch-on.arch-in .arch-reveal {
  transform: scaleY(0);
  transition: transform 1.25s cubic-bezier(0.16, 1, 0.3, 1);
}

/* 3 — Curseur personnalisé */
.fx-cursor, .fx-cursor * { cursor: none !important; }
.cur-dot {
  position: fixed;
  left: 0; top: 0;
  width: 6px; height: 6px;
  margin: -3px 0 0 -3px;
  border-radius: 50%;
  background: var(--sage);
  z-index: 99999;
  pointer-events: none;
  mix-blend-mode: difference;
  transition: opacity 0.3s ease;
}
.cur-ring {
  position: fixed;
  left: 0; top: 0;
  width: 34px; height: 34px;
  margin: -17px 0 0 -17px;
  border: 1px solid var(--sage);
  border-radius: 50%;
  z-index: 99998;
  pointer-events: none;
  mix-blend-mode: difference;
  transition: width 0.28s ease, height 0.28s ease, margin 0.28s ease,
              background-color 0.28s ease, opacity 0.3s ease;
}
.cur-ring.hover {
  width: 56px; height: 56px;
  margin: -28px 0 0 -28px;
  background-color: rgba(219, 221, 176, 0.10);
}
.cur-ring.down { width: 24px; height: 24px; margin: -12px 0 0 -12px; }

/* 4 — Voile vert entre sections */
.sect-veil {
  position: absolute;
  inset: 0;
  background: var(--forest);
  z-index: 6;
  pointer-events: none;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.9s ease, transform 1.1s cubic-bezier(0.16, 1, 0.3, 1);
}
.sect-veil.lift { opacity: 0; transform: translateY(-2.5%); }

@media (prefers-reduced-motion: reduce) {
  .sr-char { opacity: 1 !important; transform: none !important; }
  .arch-reveal, .sect-veil { display: none !important; }
}

/* ===== Mobile (téléphone) ===== */
html,body{max-width:100%;overflow-x:hidden}
img{max-width:100%}
@media (max-width:600px){
.wrap{padding:0 20px}
.nav-inner{padding:14px 20px}
.nav.scrolled .nav-inner{padding:10px 20px}
.nav-logo img{height:34px}
.nav.scrolled .nav-logo img{height:30px}
.hero{padding:96px 0 56px}
.hero h1{font-size:34px;line-height:1.12;margin-bottom:20px}
.hero-lede{font-size:16px;margin-bottom:32px}
.hero-grid{gap:32px}
.hero-arch{max-width:100%;aspect-ratio:4/5}
.hero-arch::before{inset:-8px}
.studio,.approche,.projects,.audience,.contact{padding:64px 0}
.studio-headline{font-size:28px}
.section-head{margin-bottom:32px}
.section-head h2{font-size:30px;line-height:1.15}
.contact h2{font-size:36px;margin-bottom:32px}
.contact-actions{margin-bottom:48px}
.contact-info .item .val{font-size:18px;overflow-wrap:anywhere}
.founder{margin-top:48px}
.founder-photo{width:160px;height:200px;border-radius:80px 80px 6px 6px}
.founder-info .quote{font-size:18px}
.step h3{font-size:24px}
.project-info{flex-direction:column;align-items:flex-start;gap:4px}
.audience-card{padding:28px 20px}
.audience-card h3{font-size:28px}
.bleed{height:auto;min-height:0;padding:72px 20px 32px;display:flex;flex-direction:column;align-items:center;gap:40px}
.bleed-watermark{position:relative;left:auto;top:auto;transform:none}
.bleed-watermark img{height:200px;max-height:none}
.bleed-quote{position:relative;left:auto;right:auto;bottom:auto}
.bleed-quote .quote-text{font-size:18px}
.bleed-quote .quote-meta{text-align:left}
.footer{padding:56px 0 28px}
.footer-top{grid-template-columns:1fr;gap:32px}
.footer-logo-img{height:48px}
.btn{padding:16px 22px}
.sr-word{white-space:normal}
}

@media (max-width:900px){.nav-links{display:none !important}.nav-burger{display:flex !important}.nav-drawer{display:flex}}

/* ===== Mobile v2 — mise en page ordonnée ===== */
.quote-text:empty,.quote-meta .name:empty,.quote-meta .role:empty{display:none}
@media (max-width:600px){
.studio-eyebrow,.section-head>.mono,.audience-card .num,.contact>.wrap>.label,.contact .label:empty{display:none}
em:empty{display:none}
/* rythme vertical commun */
.studio,.approche,.projects,.audience,.contact{padding:72px 0}
.section-head{display:block;text-align:center;margin-bottom:36px}
.section-head h2,.studio-headline{font-size:28px;line-height:1.2;max-width:none;text-align:center}
/* héro */
.hero{padding:92px 0 56px}
.hero-grid{display:flex;flex-direction:column;gap:36px}
.hero h1{font-size:34px;line-height:1.12}
.hero-lede{font-size:16px;line-height:1.6;margin-bottom:28px}
.hero-actions{flex-direction:column;align-items:stretch;gap:10px}
.hero-actions .btn{width:100%;justify-content:center}
.hero-arch{width:100%;max-width:none;aspect-ratio:4/5;border-radius:999px 999px 8px 8px}
.hero-arch::before{display:none}
/* studio */
.studio-grid{display:flex;flex-direction:column;gap:24px}
.studio-body{font-size:15px;line-height:1.7}
.founder{display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;margin-top:48px;padding-top:40px}
.founder-photo{width:150px;height:190px;border-radius:75px 75px 6px 6px}
.founder-info{padding-top:0}
.founder-info .name{font-size:22px}
.founder-info .role{margin-bottom:16px}
.founder-info .quote{font-size:17px;line-height:1.55}
/* approche */
.steps{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.step{padding:28px 0 !important;border-right:none !important;border-bottom:1px solid var(--line)}
.step:last-child{border-bottom:none}
.step-num{margin-bottom:10px}
.step h3{font-size:22px;margin-bottom:10px}
.step p{font-size:14px}
.step ul{margin-top:14px}
/* projets : grille 2 colonnes */
.project-grid{grid-template-columns:1fr 1fr;gap:20px 12px}
.project-thumb{aspect-ratio:4/5;border-radius:4px}
.project-info{flex-direction:column;align-items:flex-start;gap:2px;padding:10px 2px 0}
.project-name{font-size:16px}
.project-tag{font-size:9px;letter-spacing:.1em}
/* pour qui */
.audience-grid{display:flex;flex-direction:column;gap:16px}
.audience-card{padding:28px 22px}
.audience-card:hover{transform:none}
.audience-card h3{font-size:24px;margin-bottom:12px}
.audience-card p{font-size:14px;margin-bottom:18px}
.audience-card ul li{font-size:13px;padding:10px 0}
/* grand visuel */
.bleed{display:block;height:420px;min-height:0;padding:0}
.bleed-watermark{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
.bleed-watermark img{height:170px;max-height:none}
/* contact */
.contact{text-align:center}
.contact h2{font-size:34px;margin-bottom:28px}
.contact-actions{flex-direction:column;align-items:stretch;gap:10px;margin-bottom:40px}
.contact-actions .btn{width:100%;justify-content:center}
.contact-info{flex-direction:column;align-items:center;gap:22px;padding-top:32px}
.contact-info .item .val{font-size:17px}
/* footer */
.footer{padding:56px 0 28px}
.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:32px 20px;padding-bottom:40px}
.footer-brand{grid-column:1 / -1}
.footer-col:last-child{grid-column:1 / -1}
.footer-logo-img{height:44px;margin-bottom:16px}
.footer-col h4{margin-bottom:12px}
.footer-col ul li a{font-size:13px}
.footer-bottom{flex-direction:column;gap:8px;padding-top:24px;font-size:10px}
}

@media (max-width:600px){
.hero-grid{gap:0}
.hero-grid>.reveal{display:contents}
.hero h1{order:1;margin-bottom:28px}
.hero-arch{order:2;margin-bottom:28px}
.hero-lede{order:3;margin-bottom:24px}
.hero-actions{order:4}
}
@media (max-width:600px){.hero-grid{align-items:stretch}.hero-actions{align-self:stretch;width:100%}}

/* ============================================================
   V2 — héro grand format, numérotation, formulaire, finitions
   ============================================================ */
:root{--ease:cubic-bezier(.2,.8,.2,1)}
a{color:inherit}a:hover{color:inherit}

/* Héro */
.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:150px 0 110px}
.hero>.wrap{width:100%;position:relative}
.hero-grid{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:96px;align-items:center}
.hero h1{font-size:clamp(52px,6.4vw,104px);line-height:1.02;letter-spacing:-.035em;font-weight:400;margin-bottom:40px;text-wrap:balance}
.hero-lede{font-size:19px;max-width:500px;margin-bottom:52px;text-wrap:pretty}
.hero-figure{margin:0;display:flex;flex-direction:column;gap:18px;justify-self:end;width:100%;max-width:520px}
.hero-arch{aspect-ratio:464/640;max-height:74vh;width:100%;margin-left:auto}
.hero-caption{display:flex;justify-content:space-between;gap:16px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);padding-top:14px;border-top:1px solid var(--line-sage)}
.hero-caption span:first-child{font-weight:500}
.hero-caption span:last-child{opacity:.7}
.hero-scroll{position:absolute;left:80px;bottom:-70px;display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--sage);text-decoration:none;opacity:.8;transition:opacity .3s}
.hero-scroll:hover{opacity:1}
.hero-scroll-line{position:relative;width:56px;height:1px;background:var(--line-sage);overflow:hidden}
.hero-scroll-line::after{content:"";position:absolute;inset:0;background:var(--sage);transform:translateX(-100%);animation:scrollcue 2.4s var(--ease) infinite}
@keyframes scrollcue{0%{transform:translateX(-100%)}55%{transform:translateX(0)}100%{transform:translateX(100%)}}

/* Numérotation des sections */
.sec-num{display:inline-flex;align-items:center;gap:12px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.sec-num i{display:inline-block;width:28px;height:1px;background:currentColor;opacity:.5}
.audience .sec-num{color:var(--sage);opacity:.75}

/* Séparateurs fins entre sections claires */
.approche,.projects,.contact{border-top:1px solid var(--line)}

/* Étapes : survol */
.step{transition:background .4s var(--ease)}
.step h3{transition:transform .5s var(--ease)}
.step:hover h3{transform:translateX(6px)}
.step-num .num-line{transition:max-width .5s var(--ease)}
.step:hover .step-num .num-line{max-width:72px}

/* Projets : numérotation + survol */
.project-name{display:flex;align-items:baseline;gap:12px}
.project-idx{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.1em;color:var(--ink-mute)}
.project-thumb::before{content:"Voir le projet →";position:absolute;left:20px;bottom:18px;z-index:2;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#fff;opacity:0;transform:translateY(8px);transition:opacity .4s var(--ease),transform .5s var(--ease)}
.project:hover .project-thumb::before{opacity:1;transform:none}
.project-info{border-bottom:1px solid var(--line);padding-bottom:16px;transition:border-color .4s}
.project:hover .project-info{border-color:var(--forest)}

/* Cartes audience : survol */
.audience-card{transition:background .4s var(--ease),transform .5s var(--ease),border-color .4s}
.audience-card:hover{border-color:rgba(219,221,176,.5)}

/* Contact v2 */
.contact-v2{text-align:left;padding:140px 0}
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:96px;align-items:start}
.contact-v2 .label{margin-bottom:28px;display:inline-flex}
.contact-v2 h2{text-align:left;margin:0 0 56px;max-width:none;font-size:clamp(44px,5vw,80px);line-height:1.02;letter-spacing:-.03em}
.contact-v2 .contact-info{display:flex;flex-direction:column;align-items:flex-start;gap:0;max-width:none;margin:0;padding:0;border-top:1px solid var(--line)}
.contact-v2 .contact-info .item{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:baseline;width:100%;padding:20px 0;border-bottom:1px solid var(--line)}
.contact-v2 .contact-info .item .lbl{margin:0}
.contact-v2 .contact-info .item .val{font-size:19px;color:var(--forest);text-decoration:none;overflow-wrap:anywhere}
.contact-v2 a.val{background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease)}
.contact-v2 a.val:hover{background-size:100% 1px}

.cform{background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:40px;display:flex;flex-direction:column;gap:22px}
.cform-seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:4px;padding:4px;gap:4px}
.cform-seg button{font:500 12px/1 "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase;padding:14px;border:0;border-radius:2px;background:transparent;color:var(--ink-mute);cursor:pointer;transition:background .3s,color .3s}
.cform-seg button.on{background:var(--forest);color:var(--sage)}
.cform-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:22px}
.cfield{display:flex;flex-direction:column;gap:8px;min-width:0}
.cfield>span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.cfield small{text-transform:none;letter-spacing:0;opacity:.7}
.cfield input,.cfield textarea{width:100%;min-width:0;box-sizing:border-box;font:400 16px/1.5 "Inter",sans-serif;color:var(--ink);background:transparent;border:0;border-bottom:1px solid rgba(8,42,28,.25);border-radius:0;padding:10px 0;outline:none;resize:vertical;transition:border-color .3s}
.cfield input:focus,.cfield textarea:focus{border-bottom-color:var(--forest)}
.cfield.has-err input,.cfield.has-err textarea{border-bottom-color:#a33b2b}
.cerr{font-size:12px;color:#a33b2b}
.cform-submit{align-self:flex-start;margin-top:6px}
.cform-done{align-items:flex-start;gap:16px}
.cform-check{width:44px;height:44px;border-radius:50%;background:var(--forest);color:var(--sage);display:flex;align-items:center;justify-content:center;font-size:18px}
.cform-done h3{font:400 30px/1.15 "Inter",sans-serif;color:var(--forest);letter-spacing:-.01em}
.cform-done p{color:var(--ink-mute);line-height:1.65;max-width:380px}

/* Focus clavier visible */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--sage-deep);outline-offset:3px}

/* Tablette */
@media (max-width:1100px){
.hero-grid{gap:56px}
.contact-grid{gap:56px}
.cform-row{grid-template-columns:1fr}
}
@media (max-width:900px){
.hero{min-height:0;display:block;padding:120px 0 72px}
.hero-grid{grid-template-columns:1fr;gap:44px}
.hero-figure{justify-self:center;max-width:420px}
.hero-arch{max-height:none}
.hero-scroll{display:none}
.contact-grid{grid-template-columns:1fr;gap:48px}
.contact-v2{padding:88px 0}
}

/* Mobile */
@media (max-width:600px){
.section-head>.mono,.studio-eyebrow{display:block !important;text-align:center;margin-bottom:16px}
.sec-num{justify-content:center}
.hero{padding:96px 0 56px}
.hero h1{font-size:40px;line-height:1.06;letter-spacing:-.03em}
.hero-figure{order:2;max-width:none;margin-bottom:28px;gap:12px}
.hero-arch{margin-bottom:0}
.hero-caption{font-size:10px;letter-spacing:.14em}
.contact-v2{text-align:left;padding:72px 0}
.contact-v2 .label{display:inline-flex !important}
.contact-v2 h2{font-size:36px;margin-bottom:32px;text-align:left}
.contact-v2 .contact-info{align-items:stretch}
.contact-v2 .contact-info .item{grid-template-columns:1fr;gap:4px;padding:16px 0;text-align:left}
.contact-v2 .contact-info .item .val{font-size:17px}
.cform{padding:24px 20px;gap:18px}
.cform-row{grid-template-columns:1fr;gap:18px}
.cform-submit{align-self:stretch;justify-content:center}
.project-thumb::before{display:none}
.project-idx{display:none}
.footer-top{grid-template-columns:1fr !important;gap:32px}
}
@media (prefers-reduced-motion:reduce){.hero-scroll-line::after{animation:none}}

/* ===== V2 — mouvement ===== */
.fx2-progress{position:fixed;top:0;left:0;right:0;height:2px;background:var(--sage);transform-origin:0 50%;transform:scaleX(0);z-index:200;pointer-events:none}
.fx2 .hero-figure,.fx2 .hero-grid>.reveal{will-change:transform}
.fx2 .hero-arch{transition:transform .6s cubic-bezier(.2,.8,.2,1),background-position .6s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d}
.fx2 .project-thumb img{transform:scale(1.12);transition:none;will-change:transform}
.fx2 .project:hover .project-thumb img{filter:brightness(1.04)}
.fx2-wipe{clip-path:inset(100% 0 0 0);transition:clip-path 1.2s cubic-bezier(.16,1,.3,1) var(--d,0ms)}
.fx2-wipe.fx2-in{clip-path:inset(0 0 0 0)}
.audience-card.fx2-wipe{clip-path:inset(0 0 100% 0)}
.audience-card.fx2-in{clip-path:inset(0 0 0 0)}
.fx2 .bleed-watermark img{transition:transform .2s linear;will-change:transform}
.fx2 .steps{position:relative;border-top-color:transparent}
.fx2 .steps::before{content:"";position:absolute;top:-1px;left:0;height:1px;width:100%;background:var(--forest);transform-origin:0 50%;transform:scaleX(var(--draw,0))}
.fx2 .btn,.fx2 .nav-cta{transition:transform .35s cubic-bezier(.2,.8,.2,1),background .35s,color .35s,border-color .35s}
@media (max-width:900px){.fx2 .hero-grid>.reveal{transform:none !important;opacity:1 !important}.fx2 .hero-figure{transform:none !important}}

/* Héro — image vue 1 */
.hero-arch{background:linear-gradient(180deg,#82ade9 0%,#82ade9 9%,rgba(130,173,233,0) 16%),url("img/hero-vue1.jpg") 43.8% -47.5% / auto 116.4% no-repeat,#82ade9 !important}

.founder-photo{background:#0b0b0b}
.founder-photo img{object-position:50% 35%}

/* Sélecteur de langue */
.nav-links{margin-left:auto}
.lang-switch{display:flex;align-items:center;gap:6px;margin-left:32px;font:500 11px/1 "Inter",sans-serif;letter-spacing:.16em;color:var(--sage)}
.lang-switch span{opacity:.4}
.lang-switch button{background:none;border:0;padding:8px 2px;font:inherit;letter-spacing:inherit;color:var(--sage);opacity:.5;cursor:pointer;transition:opacity .25s}
.lang-switch button:hover{opacity:.85}
.lang-switch button.on{opacity:1;text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
@media (max-width:900px){.lang-switch{margin-left:auto;margin-right:8px}.lang-switch button{padding:12px 4px}}

/* Sélecteur de langue — style aligné sur la nav */
.lang-switch{gap:2px;margin-left:24px;padding:3px;border:1px solid var(--line-sage);border-radius:2px;font-size:12px;letter-spacing:.18em}
.lang-switch>span{display:none}
.lang-switch button{padding:9px 10px 9px 12px;border-radius:1px;opacity:1;color:var(--sage);line-height:1;transition:background .3s,color .3s}
.lang-switch button:hover{background:rgba(219,221,176,.12);opacity:1}
.lang-switch button.on{background:var(--sage);color:var(--forest);text-decoration:none}
.nav.scrolled .lang-switch{font-size:11px}
.nav.scrolled .lang-switch button{padding:6px 8px 6px 10px}
@media (max-width:900px){.lang-switch{margin-left:auto;margin-right:10px}.lang-switch button{padding:10px 10px 10px 12px}}

.lang-switch button,.lang-switch button.on,.lang-switch button:hover{background:transparent !important;color:var(--sage) !important}
.lang-switch button{opacity:.5}
.lang-switch button.on,.lang-switch button:hover{opacity:1}


/* Légende projet : tag aligné sur une ligne */
.project-info{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 16px}
.project-name{flex:0 0 auto;min-width:max-content}
.project-tag{flex:0 1 auto;margin-left:auto;text-align:right}
@media (max-width:1100px){.project-info{flex-direction:column;align-items:flex-start;gap:4px}.project-tag{text-align:left}}

/* Légende projet : nom au-dessus, légende dessous, alignés à gauche partout */
.project-info{flex-direction:column !important;flex-wrap:nowrap !important;align-items:flex-start !important;justify-content:flex-start !important;gap:6px !important}
.project-name{min-width:0 !important;flex:none !important}
.project-tag{margin-left:0 !important;text-align:left !important;white-space:nowrap;flex:none !important}

/* Mentions légales / confidentialité */
.footer-legal{display:flex;gap:24px}
.footer-legal button{background:none;border:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit;color:var(--sage);cursor:pointer;opacity:1;transition:opacity .25s}
.footer-legal button:hover{text-decoration:underline;text-underline-offset:4px}
.cform-consent{font-size:12px;line-height:1.55;color:var(--ink-mute);margin:0}
.legal-overlay{position:fixed;inset:0;z-index:300;background:rgba(5,28,19,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;justify-content:flex-end;animation:legalfade .3s ease}
.legal-panel{position:relative;width:min(680px,100%);height:100%;overflow-y:auto;background:var(--ivory);color:var(--ink);padding:72px 64px 64px;animation:legalslide .45s cubic-bezier(.16,1,.3,1)}
.legal-close{position:sticky;top:0;float:right;margin:-40px -24px 0 0;display:flex;align-items:center;gap:10px;background:var(--ivory);border:1px solid var(--line);border-radius:2px;padding:10px 14px;font:500 11px/1 "Inter",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);cursor:pointer;transition:background .25s,color .25s}
.legal-close span{font-size:16px;line-height:1}
.legal-close:hover{background:var(--forest);color:var(--sage)}
.legal-body h2{font:400 clamp(32px,3.4vw,44px)/1.1 "Inter",sans-serif;letter-spacing:-.02em;color:var(--forest);margin:0 0 32px}
.legal-body h3{font:500 11px/1.4 "Inter",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--forest);margin:36px 0 10px;padding-top:20px;border-top:1px solid var(--line)}
.legal-body p{font-size:15px;line-height:1.75;color:#3a3a36;margin:0 0 12px;text-wrap:pretty}
.legal-date{margin-top:40px !important;font-size:12px !important;color:var(--ink-mute) !important}
@keyframes legalfade{from{opacity:0}to{opacity:1}}
@keyframes legalslide{from{transform:translateX(40px);opacity:0}to{transform:none;opacity:1}}
@media (max-width:600px){
.legal-panel{padding:64px 22px 40px}
.legal-close{margin:-44px -6px 0 0}
.legal-body h2{font-size:30px}
.footer-legal{gap:18px}
}

/* ===== Projets : lien vers la page ===== */
a.project{display:block;color:inherit;text-decoration:none;cursor:pointer}
.project-thumb::before{content:"Voir le projet →"}
html[lang="en"] .project-thumb::before{content:"View project →"}

/* ===== Page projet ===== */
.ppage{position:fixed;inset:0;z-index:250;overflow-y:auto;background:var(--paper);color:var(--ink);animation:ppin .5s cubic-bezier(.16,1,.3,1)}
@keyframes ppin{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
.ppage-bar{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 80px;background:var(--forest);color:var(--sage)}
.ppage-back{background:none;border:0;padding:8px 0;font:500 12px/1 "Inter",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--sage);cursor:pointer}
.ppage-back:hover{text-decoration:underline;text-underline-offset:5px}
.ppage-count{color:var(--sage);opacity:.7}
.ppage-head{padding-top:96px;padding-bottom:56px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:64px;align-items:end}
.ppage-head h1{font:400 clamp(56px,7vw,112px)/.98 "Inter",sans-serif;letter-spacing:-.035em;color:var(--forest);margin:0}
.ppage-facts{margin:0;border-top:1px solid var(--line)}
.ppage-facts div{display:grid;grid-template-columns:140px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.ppage-facts dt{font:500 11px/1.6 "Inter",sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute)}
.ppage-facts dd{margin:0;font-size:16px;color:var(--forest)}
.ppage-desc{grid-column:1 / -1;max-width:680px;font-size:17px;line-height:1.75;color:#3a3a36}
.ppage-gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding-bottom:96px}
.ppage-fig{margin:0;border-radius:6px;overflow:hidden;background:var(--ivory)}
.ppage-fig img{display:block;width:100%;height:100%;object-fit:cover}
.ppage-fig.is-lead{grid-column:1 / -1;aspect-ratio:16/9}
.ppage-fig:not(.is-lead){aspect-ratio:4/5}
.ppage-gallery .ppage-fig:only-child{aspect-ratio:auto}
.ppage-gallery .ppage-fig:only-child img{height:auto;max-height:86vh;object-fit:contain;background:var(--ivory)}
.ppage-gallery .ppage-fig:nth-child(2):last-child{grid-column:1 / -1;aspect-ratio:16/9}
.ppage-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-bottom:80px}
.ppage-nav-item{display:flex;flex-direction:column;gap:10px;padding:40px 0;color:var(--forest);text-decoration:none}
.ppage-nav-item.is-next{align-items:flex-end;text-align:right;border-left:1px solid var(--line)}
.ppage-nav-item span{color:var(--ink-mute)}
.ppage-nav-item strong{font:400 clamp(28px,3vw,44px)/1.05 "Inter",sans-serif;letter-spacing:-.02em;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.ppage-nav-item:hover strong{transform:translateX(-6px)}
.ppage-nav-item.is-next:hover strong{transform:translateX(6px)}
@media (max-width:900px){
.ppage-bar{padding:14px 24px}
.ppage-head{grid-template-columns:1fr;gap:32px;padding-top:56px;padding-bottom:36px}
.ppage-gallery{grid-template-columns:1fr;gap:14px;padding-bottom:56px}
.ppage-fig.is-lead,.ppage-fig:not(.is-lead),.ppage-gallery .ppage-fig:nth-child(2):last-child{aspect-ratio:4/5;grid-column:auto}
.ppage-nav-item{padding:28px 0}
.ppage-nav-item.is-next{padding-left:16px}
}
@media (max-width:600px){
.ppage-head h1{font-size:48px}
.ppage-facts div{grid-template-columns:110px 1fr}
.ppage-nav-item strong{font-size:24px}
}

.ppage-gallery.is-wide .ppage-fig:not(.is-lead){aspect-ratio:16/10}
@media (max-width:900px){.ppage-gallery.is-wide .ppage-fig{aspect-ratio:16/10 !important}}

.ppage-gallery .ppage-fig:only-child{aspect-ratio:auto !important}
.ppage-gallery .ppage-fig:only-child img{width:100%;height:auto;max-height:none;object-fit:cover;background:none}

/* ===== FAQ ===== */
.faq{background:var(--paper);padding:140px 0;border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:96px;align-items:start}
.faq-head{position:sticky;top:120px;display:flex;flex-direction:column;align-items:flex-start}
.faq-head .label{margin-bottom:28px}
.faq-head h2{font:400 clamp(40px,4.2vw,64px)/1.05 "Inter",sans-serif;letter-spacing:-.025em;color:var(--forest);margin:0 0 24px}
.faq-head p{font-size:16px;line-height:1.7;color:var(--ink-mute);max-width:340px;margin:0 0 32px}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-q{width:100%;display:grid;grid-template-columns:44px 1fr 24px;gap:16px;align-items:center;padding:26px 0;background:none;border:0;text-align:left;cursor:pointer;color:var(--forest)}
.faq-num{font-size:11px;color:var(--ink-mute);letter-spacing:.1em}
.faq-qt{font:400 20px/1.35 "Inter",sans-serif;letter-spacing:-.01em;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.faq-q:hover .faq-qt{transform:translateX(6px)}
.faq-ico{position:relative;width:16px;height:16px;justify-self:end}
.faq-ico::before,.faq-ico::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--forest);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.faq-ico::after{transform:rotate(90deg)}
.faq-item.is-open .faq-ico::after{transform:rotate(0)}
.faq-a{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s cubic-bezier(.2,.8,.2,1)}
.faq-a>div{overflow:hidden}
.faq-item.is-open .faq-a{grid-template-rows:1fr}
.faq-a p{margin:0;padding:0 40px 30px 60px;font-size:15px;line-height:1.75;color:#3a3a36;max-width:640px;text-wrap:pretty}
@media (max-width:900px){
.faq{padding:88px 0}
.faq-grid{grid-template-columns:1fr;gap:40px}
.faq-head{position:static}
}
@media (max-width:600px){
.faq{padding:72px 0}
.faq-head{align-items:center;text-align:center}
.faq-head h2{font-size:30px}
.faq-head p{margin-bottom:24px}
.faq-q{grid-template-columns:30px 1fr 18px;gap:12px;padding:20px 0}
.faq-qt{font-size:16px}
.faq-a p{padding:0 0 22px 42px;font-size:14px}
}

.founder-photo img{inset:auto 0 0 50% !important;width:84% !important;height:auto !important;transform:translateX(-50%);object-fit:contain !important}
