/* ============================================================
   style.css — Nadia Usaï Intérieurs
   La police Anaktoria (@font-face) est déclarée dans _head.php
   ============================================================ */

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

:root {
  --bg:   #F2F0EE;
  --bg2:  #ECEAE7;
  --bg3:  #E6E3DF;
  --ink:  #542828; /*#1A1A18;*/
  --ink2: #542828; /*#4A4847;*/
  --ink3: #542828; /*#6A6866;*/
  --gold: #542828; /*#B8913A;*/
  --beige:#AB8B7A;
  --white: #fff;
  --bleu : #7b9596;
  --bleu-light:#b9c9ca;
  --logo-color: #542828; /*#fff;*/
  --logo-color-light: #fff;
  --dark: #2A1F1D;
  --rust: #af5b2b;
  --b:    rgba(100,98,95,0.14);
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:    'Cormorant SC', Georgia, serif;
  --sans:  'Jost', sans-serif;
  --ease:  cubic-bezier(0.4, 0, 1, 1);
  --gap:   14px;
}

html { scroll-behavior: smooth; }
body { background: var(--bg); color: var(--ink); font-family: var(--sans); font-weight: 400; font-size: 15px; line-height: 1.7; overflow-x: hidden;  padding: 0 var(--gap); }

#content { max-width: 80%; margin: 0 auto; }

/* Sections pleine largeur — s'échappent du container 80% */
.home-photos,
.projects,
.proj-strip,
.proj-strip--swiper,
.gal-full,
.gal-duo,
.gal-asym,
.gal-trio,
.par-img-grid,
.statement { /*width: calc(125% + 2 * var(--gap)); margin-left: calc(-12.5% - var(--gap));*/ }

/* ── UTILITAIRES ── */
.gold { color: var(--gold); font-weight: inherit; }

/* ── BOUTONS CTA (composants réutilisables) ── */
.btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 14px 32px; border: 1px solid transparent; border-radius: 0; font-family: var(--sans); font-size: 13px; font-weight: 400; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background 0.35s var(--ease), border-color 0.35s var(--ease), color 0.35s var(--ease); }
.btn--primary { background: var(--ink); color: var(--bg); }
.btn--primary:hover { background: var(--ink2); }
.btn--secondary { background: transparent; border-color: rgba(100,98,95,0.4); color: var(--ink); }
.btn--secondary:hover { border-color: var(--gold); }

/* ── REVEAL ── */
.reveal { opacity: 0; transform: translateY(20px); transition: opacity 0.85s var(--ease), transform 0.85s var(--ease); }
.reveal.visible { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: 0.12s; }
.reveal-d2 { transition-delay: 0.24s; }
.reveal-d3 { transition-delay: 0.36s; }

/* ── HEADER ── */
header { position: fixed; top: 0; left: 0; right: 0; z-index: 300; height: 90px; display: flex; align-items: center; justify-content: space-between; padding: 0 40px; }
.logo-header { text-decoration: none; color: white; display: none;/*flex*/; flex-direction: column; line-height: 1.05; align-self: flex-start; margin-top: 15px; }
.logo-header .h-name { font-family: var(--sans); font-weight: 400; font-size: 24px; letter-spacing: 0.08em; }
.logo-header .h-sub  { font-family: var(--sans); font-weight: 300; font-size: 10px; letter-spacing: 0.34em; color: rgba(255,255,255,0.75); margin-top: 2px; }
.logo-header-img { height: 80px; width: auto; display: block; transition: opacity 0.4s ease, transform 0.4s ease; }
.logo-header-img.logo-hidden { opacity: 0; pointer-events: none; transform: translateY(-8px); }
body:has(.panel.open) .logo-header-img { opacity: 0; pointer-events: none; }

/* ── CTA HEADER ── */
.header-cta { align-self: flex-start; margin-top: 32px; z-index: 310; padding: 12px 26px; }
.header-cta-short { display: none; }
body:has(.panel.open) .header-cta { opacity: 0; pointer-events: none; transition: opacity 0.3s; }

/* ── BURGER ── */
.burger { background: none; border: none; padding: 0; display: flex; flex-direction: row; align-items: center; gap: 10px; z-index: 310; position: relative; cursor: pointer; align-self: flex-start; margin-top: 40px; }
.burger-spans { display: flex; flex-direction: column; justify-content: space-between; width: 16px; height: 11px; flex-shrink: 0; }
.burger-label { display: block; font-family: var(--sans); font-size: 15px; font-weight: 400; color: white; white-space: nowrap; transition: opacity 0.3s; }
.burger.open .burger-label { opacity: 0; }
header.header--dark .burger-label { color: var(--ink); }
.burger-spans span { display: block; height: 1px; width: 16px; background: white; transform-origin: center center; transition: transform 0.45s var(--ease), opacity 0.3s; }
.burger.open .burger-spans span { background: var(--ink); }
.burger.open .burger-spans span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.burger.open .burger-spans span:nth-child(2) { opacity: 0; }
.burger.open .burger-spans span:nth-child(3) { transform: translateY(-3px) rotate(-45deg); }

/* ── PANEL ── */
.panel-bg { position: fixed; inset: 0; z-index: 280; background: rgba(122,94,86,0); pointer-events: none; transition: background 0.5s; }
.panel-bg.open { background: rgba(122,94,86,0.12); pointer-events: all; }
.panel { position: fixed; top: 7%; left: 60px; z-index: 290; max-width: 320px; max-height: 0; overflow: hidden; background: rgba(236,234,231,0.35); backdrop-filter: blur(3px); transition: max-height 0.35s var(--ease); }
.panel-inner { padding: 45px 75px; display: flex; flex-direction: column; }
.panel nav a { font-family: var(--sans); font-weight: 300; font-size: clamp(14px, 2.5vw, 18px); color: var(--ink); text-decoration: none; letter-spacing: 0.06em; line-height: 1.6; display: block; opacity: 0; transform: translateY(-8px); transition: opacity 0.4s var(--ease), transform 0.4s var(--ease), color 0.25s; padding: 6px 0; }
.panel nav a:hover { color: var(--white); }
.panel.open nav a { opacity: 1; transform: translateY(0); }
.panel-footer { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--b); font-family: var(--sans); font-size: 12px; font-weight:300; letter-spacing: 0.12em; color: var(--ink3); opacity: 0; transition: opacity 0.35s 0.35s; }
.panel.open .panel-footer { opacity: 1; }
.panel-logo-wrap { margin-top: 28px; display: flex; justify-content: center; opacity: 0; transition: opacity 0.35s 0.35s; }
.panel.open .panel-logo-wrap { opacity: 1; }
.panel-logo { width: 70px; }

/* ── Accordéon "Nos services" (panel burger) ────────────────── */
.panel-accordion { margin-top: 4px; }
.panel-accordion-toggle {
    display: flex; align-items: center; gap: 8px;
    font-family: var(--sans); font-weight: 300; font-size: clamp(14px, 2.5vw, 18px);
    color: var(--ink); letter-spacing: 0.06em; line-height: 1.6;
    background: none; border: none; padding: 6px 0; cursor: pointer;
    opacity: 0; transform: translateY(-8px);
    transition: opacity 0.4s var(--ease), transform 0.4s var(--ease), color 0.25s;
    width: 100%;
}
.panel.open .panel-accordion-toggle { opacity: 1; transform: translateY(0); }
.panel-accordion-toggle:hover { color: var(--white); }
.panel-accordion-chevron {
    display: inline-block;
    flex-shrink: 0;
    transition: transform 0.35s var(--ease); margin: 0 0 0 auto;
}
.panel-accordion-toggle.open .panel-accordion-chevron { transform: rotate(180deg); }
.panel-accordion-content {
    max-height: 0; overflow: hidden;
    transition: max-height 0.35s var(--ease);
}
.panel-accordion-item {
    display: block; padding: 10px 0 10px 18px; text-decoration: none;
}
.panel-accordion-item-title {
    display: block; font-family: var(--sans); font-weight: 300; font-size: 16px;
    letter-spacing: 0.08em; color: var(--rust);line-height: 1;
}
.panel-accordion-item:hover .panel-accordion-item-title { color: var(--white); }

/* ── HERO — home ── */
.hero { margin-top: var(--gap); margin-bottom: var(--gap); position: relative; width: 100%; height: 90vh; min-height: 480px; overflow: hidden; }
.hero-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; }

.hero-title { position: absolute; inset: 0; z-index: 1; pointer-events: none; }
/* translate(-50%,-50%) repris dans les keyframes : sinon l'animation écrase le centrage */
@keyframes heroText { from { opacity: 0; transform: translate(-50%, -50%) scale(1.12); } to { opacity: 1; transform: translate(-50%, -50%) scale(1); } }
/* Le nom remonte au niveau de la navigation : header = 90px, hero décalé de var(--gap) */
.hero-title .name { position: absolute; top: calc((90px - var(--gap)) / 2); left: 50%; transform: translate(-50%, -50%); white-space: nowrap; font-family: var(--serif); font-weight: 500; font-size: clamp(20px, 3vw, 48px); color: var(--logo-color); line-height: 1; letter-spacing: 0.3em; text-transform: uppercase; }
.hero-baseline { display:none;position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(90%, 900px); margin: 0; text-align: center; font-family: var(--sans); font-weight: 400; text-transform:uppercase; font-size: clamp(22px, 4vw, 32px); letter-spacing:.15rem; line-height: 1.25; color: var(--white); text-shadow: 0 2px 20px rgba(0,0,0,.5); animation: heroText 3s 0.3s ease-out both; }
.hero-title .sub  { display: block; font-family: var(--sans); font-size: clamp(12px, 2vw, 22px); letter-spacing: 0.5em; text-transform: uppercase; color: var(--logo-color-light); margin-top: 12px; text-align: center; font-weight: 600; }

/* ── HERO — pages intérieures ── */
.hero--inner { height: 50vh; min-height: 320px; margin-bottom: 0; }

/* ── Fil d'Ariane projet ── */
.proj-hero-back { position: absolute; top: 32px; left: 40px; z-index: 1; display: flex; align-items: center; gap: 10px; font-family: var(--sans); font-size: 12px; letter-spacing: 0.2em; color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.25s; }
.proj-hero-back::before { content: ''; display: block; width: 24px; height: 1px; background: rgba(255,255,255,0.6); transition: width 0.3s var(--ease); }
.proj-hero-back:hover { color: white; }
.proj-hero-back:hover::before { width: 36px; }

/* ── PROJETS — grille 2 colonnes ── */
.projects { display: flex; flex-direction: column; gap: var(--gap); padding-bottom: 0; }
.proj-row { display: grid; gap: var(--gap); }
.proj-row-duo  { grid-template-columns: 1fr 1fr; }
.proj-row-solo { grid-template-columns: 1fr 1fr; }
.proj-row-solo .project-item:only-child { grid-column: 1; }
.project-item { display: block; position: relative; overflow: hidden; text-decoration: none; }
.project-item.portrait img { width: 100%; height: auto; display: block; object-fit: unset; }
.project-item.paysage  img { height: 100%; width: 100%; aspect-ratio: unset; }
.project-item img { width: 100%; display: block; object-fit: cover; transition: transform 1.2s var(--ease); }
.project-item:hover img { transform: scale(1.03); }
.project-item-info { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: center; }
.project-item-info::before { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 45%); opacity: 1; transition: opacity 0.7s var(--ease); z-index: 0; }
.project-item-info::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.65) 0%, transparent 55%); opacity: 0; transition: opacity 0.7s var(--ease); z-index: 0; }
.project-item:hover .project-item-info::after { opacity: 1; }
.project-item-info h2 { position: relative; z-index: 1; }
.project-item-info h2 { font-family: var(--sans); font-weight: 300; font-size: clamp(13px, 1.4vw, 16px); color: white; text-align: left; letter-spacing: 0.12em; text-transform: uppercase; padding: 20px 18px 50px; }
.project-item-info .meta { font-family: var(--sans); font-size: 11px; letter-spacing: 0.2em; color: rgba(255,255,255,0.7); white-space: nowrap; margin-left: 16px; flex-shrink: 0; }

/* ── PINTEREST BTN ── */
.pinterest-btn { position: absolute; bottom: 14px; right: 14px; width: 32px; height: 32px; background: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; opacity: 0; transform: scale(0.8); transition: opacity 0.35s var(--ease), transform 0.35s var(--ease); z-index: 10;  }
.project-item:hover .pinterest-btn { opacity: 1; transform: scale(1); }
.pinterest-btn:hover { background: #E60023; }
.pinterest-btn svg { width: 16px; height: 16px; fill: #E60023; transition: fill 0.2s; pointer-events: none; }
.pinterest-btn:hover svg { fill: white; }

/* ── STATEMENT ── */
.statement { padding: 6rem 30%; display: flex; align-items: center; justify-content: center; text-align: justify; }
.statement-left { font-family: var(--sans); font-weight: 400; font-size: clamp(16px, calc(14.29px + 0.54vw), 17px); line-height: 1.25; color: var(--ink2); letter-spacing: 0.02em; }
.statement-left strong { font-weight: 500; color: var(--ink); display: block; margin-bottom: 8px; font-size: clamp(18px, calc(16.57px + 0.54vw), 20px); }
.statement-right { padding-left: 40px; height: 100%; display: flex; align-items: flex-end; white-space: nowrap; }
.statement-right .tag { font-family: var(--sans); font-size: 12px; letter-spacing: 0.3em; color: var(--gold); margin-bottom: 28px; display: block; }
.statement-right p { font-size: 18px; line-height: 1.55; color: var(--ink2); margin-bottom: 40px; }
.btn-light { display: inline-flex; align-items: center; gap: 14px; font-size: 15px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); text-decoration: none; transition: gap 0.35s var(--ease); font-weight: 500; font-family: var(--sans);}
.btn-light::after { content: ''; display: block; width: 28px; height: 1px; background: var(--gold); transition: width 0.35s var(--ease); }
.btn-light:hover { gap: 6px; }
.btn-light:hover::after { width: 48px; }
.center-title {text-align:center}
.content-title {
    font-family: var(--serif);
    font-weight: 500;
    font-size: clamp(1.5rem, 1rem + 1.5vw, 55px);
    margin: 0;
    line-height:1.15; padding-bottom: 2rem;
}

/* ── BLOCS CTA ── */
.cta-row { display: flex; justify-content: center; margin: calc(var(--gap) * 3) 0; }
.cta-final { display: flex; flex-direction: column; align-items: center; gap: calc(var(--gap) * 2); padding: calc(var(--gap) * 6) var(--gap); border-top: 1px solid var(--b); }
.cta-final-lead { font-family: var(--serif); font-weight: 400; font-size: clamp(24px, 3vw, 34px); line-height: 1.3; color: var(--ink); text-align: center; }

/* ── SERVICES ── */
.services { display: grid; grid-template-columns: repeat(3, 1fr); margin:6rem 0 }
.svc { padding: 34px 54px; border-right: 1px solid var(--b); }
.svc:last-child { border-right: none; }
.svc-icon { display:none; width: 38px; height: 38px; color: var(--ink3); margin-bottom: 32px; }
.svc-icon svg { width: 100%; height: 100%; }
.svc h3 { font-family: var(--serif); font-weight: 300; font-size:clamp(1.5rem, 1rem + 1.5vw, 30px); letter-spacing: 0.03em; line-height: 1.2; margin-bottom: 20px; }
.svc h3 strong { font-weight: 500; font-family: var(--sans); font-size: clamp(1rem, 1rem + 1vw, 25px); }
.svc p { font-size:clamp(15px, calc(13.29px + 0.54vw), 18px); line-height: 1.25; color: var(--ink2); font-weight:300; padding: 0 4rem 0 0px; }

/* Bande photos home */
.home-photos {position: relative; padding: var(--gap) 0; }
.home-photo { display: block; overflow: visible; height: auto; }
.home-photo a { display: flex; flex-direction: column; height: 100%; text-decoration: none; }
.home-photo-img { position: relative; overflow: hidden; /*aspect-ratio: 3/4;*/ }
/* Lieu en surimpression, haut droite — ombre portée pour rester lisible sur photo claire */
.home-photo-lieu { position: absolute; top: 14px; right: 14px; z-index: 2; font-family: var(--sans); font-size: clamp(11px, 0.9vw, 13px); font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase; color: #fff; text-shadow: 0 1px 6px rgba(0,0,0,.45); pointer-events: none; }
.home-photo-lieu sup { font-size: 0.7em; vertical-align: super; letter-spacing: 0; }
.home-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 0.7s var(--ease); }
.home-photo:hover img { transform: scale(1.05); } .home-photo:hover .home-photo-title { color: var(--ink); }
.home-photos-prev, .home-photos-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; background: rgba(242,240,238,0.85); border: 1px solid var(--b); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; font-size: 14px; color: var(--ink); cursor: pointer; transition: background 0.25s; }
.home-photos-prev { left: 0; }
.home-photos-next { right: 0; }
.home-photos-prev:hover, .home-photos-next:hover { background: var(--bg2); }
/* Légende sous l'image : titre / mission (italique) / type + surface */
.home-photo-caption { display: flex; flex-direction: column; line-height: 1.45; padding: 18px 2px 0; }
.home-photo-title { font-family: var(--serif); font-size: clamp(17px, 1.4vw, 26px); font-weight: 500; line-height: 1.7; letter-spacing: 0.01em; color: var(--ink); transition: color 0.3s var(--ease); }
.home-photo-mission { font-family: var(--sans); font-size: clamp(14px, 1.3vw, 18px); color: var(--bleu); font-weight: 300; line-height: 1.3; }
.home-photo-specs { font-family: var(--sans); font-size: clamp(14px, 1.3vw, 18px); color: var(--bleu); font-weight: 300; line-height: 1.3; }
.home-photo-specs::first-letter { text-transform: uppercase; }

/* ── BANDE PARTENAIRES ── */
.logos-band { border-bottom: 1px solid var(--b); border-top: 1px solid var(--b); background: var(--bleu-light); margin:2rem 0; padding: 20px 48px; display: flex; align-items: center; gap: 32px; overflow: hidden; }
.logos-band-tag { font-family: var(--sans); font-size: 11px; letter-spacing: 0.28em; color: var(--ink3); white-space: nowrap; flex-shrink: 0; }
.logos-band-swiper { flex: 1; overflow: hidden; }
#logosBandSwiper .swiper-wrapper { transition-timing-function: linear !important; }
.logos-band-item { font-family: var(--sans); font-size: 18px; font-weight: 300; letter-spacing: 0.04em; color: var(--ink3); width: 20vw !important; text-align: center; white-space: nowrap; transition: color 0.25s; }
.logos-band-item:hover { color: var(--ink); }
.logos-band-item a { color: inherit; text-decoration: none; transition: color 0.25s; display: flex; align-items: center; justify-content: center; height: 100%; }
.logos-band-item a:hover { color: var(--ink); }
.logos-band-item img { height: 50px; width: auto; max-width: 120px; object-fit: contain; display: block; filter: grayscale(1) sepia(0.15) opacity(0.5); transition: filter 0.3s; }
.logos-band-item:hover img { filter: grayscale(1) sepia(0.15) opacity(0.8); }
/* ── HOME PRESSE ── */
.home-presse { position: relative; padding: var(--gap) 0; max-width: 80%; margin: 0 auto; }
#homePresseSwiper .swiper-wrapper { align-items: stretch; }
.home-presse-item { display: block; overflow: hidden; aspect-ratio: 1/1; }
.home-presse-item a { display: flex; height: 100%; }
.home-presse-item img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 0.7s var(--ease); }
.home-presse-item:hover img { transform: scale(1.05); }
.home-presse-nom { font-family: var(--sans); font-size: 15px; color: var(--ink2); padding: 4px 8px; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }

/* ── PARUTIONS ── */
.presse { background: var(--bg2); border-bottom: 1px solid var(--b); display: flex; align-items: stretch; }
.presse-tag { flex-shrink: 0; display: flex; align-items: center; padding: 10px 40px; font-family: var(--sans); font-size: 12px; letter-spacing: 0.3em; color: var(--ink3); border-right: 1px solid var(--b); writing-mode: vertical-rl; transform: rotate(180deg); }
.presse-items { display: flex; align-items: center; flex: 1; }
.presse-items span { flex: 1; padding: 28px 32px; font-family: var(--sans); font-weight: 300; font-size: 18px; letter-spacing: 0.03em; color: var(--ink2); border-right: 1px solid var(--b); text-align: center; transition: color 0.25s; }
.presse-items span:last-child { border-right: none; }
.presse-items span:hover { color: var(--ink); }

/* ── FOOTER ── */
.foot { --foot-ease: cubic-bezier(0.77,0,0.18,1); max-width: 960px; margin: 0 auto; padding: calc(var(--gap) * 5) var(--gap) calc(var(--gap) * 3); }

/* Colonnes de liens */
.foot-cols { display: grid; grid-template-columns: repeat(4, 1fr); gap: calc(var(--gap) * 2); padding-bottom: calc(var(--gap) * 4); }
.foot-col-title { font-family: var(--serif); font-size: 14px; font-weight: 600; letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink); margin-bottom: calc(var(--gap) * 1.5); }
.foot-col-list { list-style: none; }
.foot-col-list li { margin-bottom: var(--gap); }
.foot-col-list li:last-child { margin-bottom: 0; }
.foot-col-list a { font-family: var(--sans); font-weight: 400; font-size: 17px; line-height: 1.35; color: var(--ink); text-decoration: none; transition: color 0.35s var(--foot-ease); }
.foot-col-list a:hover { color: var(--gold); }

/* Bloc final */
.foot-end { border-top: 1px solid var(--b); padding-top: calc(var(--gap) * 3); text-align: center; }
.foot-end-name { display: block; font-family: var(--serif); font-weight: 500; font-size: 14px; text-transform: uppercase; color: var(--ink3); letter-spacing: 0.3em; }
.foot-end-word { display: block; font-family: var(--serif); font-weight: 700; font-size: 28px; line-height: 1.15; letter-spacing: 0.06em; text-transform: uppercase; color: var(--ink); margin-top: 2px; }
.foot-end-legal { font-family: var(--serif); font-size: 15px; color: var(--ink3); margin-top: calc(var(--gap) * 1.5); }
.foot-end-legal a { color: var(--gold); text-decoration: none; transition: opacity 0.35s var(--foot-ease); }
.foot-end-legal a:hover { opacity: 0.7; }

/* ── PAGE PROJET DÉTAIL ── */
.proj-meta { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--b); }
.proj-meta-item { padding: 28px 40px; border-right: 1px solid var(--b); }
.proj-meta-item:last-child { border-right: none; }
.proj-meta-item dt { font-family: var(--sans); font-size: 12px; letter-spacing: 0.28em; color: var(--gold); margin-bottom: 8px; }
.proj-meta-item dd { font-family: var(--sans); font-weight: 300; font-size: 18px; letter-spacing: 0.04em; color: var(--ink); }
.proj-intro { display: grid; grid-template-columns: 1fr 480px; border-bottom: 1px solid var(--b); }
.proj-intro-title { padding: 80px 64px 80px 48px; border-right: 1px solid var(--b); }
.proj-intro-title .proj-tag { font-family: var(--sans); font-size: 12px; letter-spacing: 0.3em; color: var(--gold); display: block; margin-bottom: 28px; }
.proj-intro-title h1 { margin-bottom: 16px; }
.proj-intro-title .proj-location { font-family: var(--sans); font-size: 13px; letter-spacing: 0.22em; color: var(--ink3); }
.proj-intro-text { padding: 80px 48px; }
.proj-intro-text p { font-size: 15px; line-height: 1.95; color: var(--ink2); margin-bottom: 20px; }
.proj-intro-text p:last-child { margin-bottom: 0; }

/* Galerie projet */
.gal-portrait-centered { max-width: 50%; margin: 0 auto var(--gap); }
.gal-full { position: relative; overflow: hidden; margin-bottom: var(--gap); }
.gal-full img { width: 100%; height: auto; display: block; transition: transform 1.2s var(--ease); }
.gal-full:hover img { transform: scale(1.03); }
.gal-duo { display: grid; grid-template-columns: 1fr 1fr; gap: var(--gap); margin-bottom: var(--gap); margin-top: var(--gap); }
.gal-duo .gal-cell { position: relative; overflow: hidden; }
.gal-duo .gal-cell img { width: 100%; height: auto; display: block; transition: transform 1.2s var(--ease); }
.gal-duo .gal-cell:hover img { transform: scale(1.04); }
.gal-asym { display: grid; grid-template-columns: 3fr 2fr; border-bottom: 1px solid var(--b); }
.gal-asym .gal-cell { position: relative; overflow: hidden; border-right: 1px solid var(--b); }
.gal-asym .gal-cell:last-child { border-right: none; }
.gal-asym .gal-cell img { width: 100%; height: auto; display: block; transition: transform 1.2s var(--ease); }
.gal-asym .gal-cell:hover img { transform: scale(1.04); }
.gal-trio { display: grid; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid var(--b); }
.gal-trio .gal-cell { position: relative; overflow: hidden; border-right: 1px solid var(--b); }
.gal-trio .gal-cell:last-child { border-right: none; }
.gal-trio .gal-cell img { width: 100%; height: auto; display: block; transition: transform 1.2s var(--ease); }
.gal-trio .gal-cell:hover img { transform: scale(1.04); }
.gal-caption { padding: 20px 48px; border-bottom: 1px solid var(--b); display: flex; justify-content: space-between; align-items: center; }
.gal-caption span { font-family: var(--sans); font-size: 12px; letter-spacing: 0.2em; color: var(--ink3); }

/* Navigation projet précédent / suivant */
/* ── HEADER sans hero (projet-détail) ── */
header.header--dark .logo-header { color: var(--ink); }
header.header--dark .h-sub { color: var(--ink3); }
header.header--dark .burger-spans span { background: var(--ink); }

/* ── PROJET DÉTAIL — hero ── */
.proj-hero { position: relative; left: 50%; transform: translateX(-50%); width: 100vw; height: 90vh; min-height: 520px; overflow: hidden; }
.proj-hero-img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }
.proj-hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 50%); }
.proj-hero-bottom { position: absolute; bottom: 44px; left: 44px; right: 44px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: flex-end; gap: 24px; }
.proj-hero-left { grid-column: 2; text-align: center; }
.proj-hero-label { font-family: var(--sans); font-size: 10px; letter-spacing: 0.2em; color: rgba(255,255,255,0.75); margin-bottom: 14px; text-transform: uppercase; }
/* Exception au modèle h1 unifié : blanc sur photo, taille XXL (cf. bloc « TITRES H1 ») */
.proj-hero-titre.proj-hero-titre { font-family: var(--serif); font-weight: 400; font-size: clamp(42px, 7vw, 100px); color: white; margin: 0; line-height: 1; letter-spacing: normal; }
.proj-hero-right { grid-column: 3; justify-self: end; display: flex; gap: 36px; flex-shrink: 0; }
.proj-hero-meta { font-family: var(--sans); font-size: 11px; color: white; letter-spacing: 0.06em; text-align: center; }
.proj-hero-meta-label { display: block; opacity: 0.6; margin-bottom: 5px; font-size: 10px; letter-spacing: 0.12em; }

/* ── PROJET DÉTAIL — intro 3 colonnes ── */
.proj-top { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--b); margin-top: 155px; }
.proj-top-left { padding: 56px 48px 64px 0; border-right: 1px solid var(--b); display: flex; flex-direction: column; }
.proj-top-center { overflow: hidden; }
.proj-cover { width: 100%; height: 100%; min-height: 580px; object-fit: cover; object-position: center; display: block; }
.proj-top-right { padding: 56px 48px 64px; }

.proj-tag { font-family: var(--sans); font-size: 11px; letter-spacing: 0.32em; color: var(--gold); display: block; margin-bottom: 24px; }
.proj-titre { font-family: var(--sans); font-weight: 300; font-size: clamp(28px, 3.5vw, 52px); line-height: 1.12; letter-spacing: 0.02em; color: var(--ink); margin-bottom: 20px; }
.proj-sep-gold { width: 28px; height: 1px; background: var(--gold); margin-bottom: 24px; }
.proj-top-stat { font-size: 15px; line-height: 1.6; color: var(--ink2); }
.proj-scroll-hint { margin-top: auto; padding-top: 48px; font-size: 20px; color: var(--gold); }

.proj-top-desc { font-size: 18px; line-height: 1.9; color: var(--ink2); margin-bottom: 28px; }

/* Truncation "lire la suite" — actif seulement ≤ 1500px */
.proj-desc-toggle { display: none; }

@media (max-width: 1500px) {
  .proj-top-desc-container {
    max-height: 220px;
    overflow: hidden;
    position: relative;
    transition: max-height 0.5s var(--ease);
  }
  .proj-top-desc-container:not(.expanded)::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0; right: 0;
    height: 80px;
    background: linear-gradient(to bottom, transparent, var(--bg));
    pointer-events: none;
  }
  .proj-top-desc-container.expanded { max-height: 2000px; }
  .proj-top-desc-container.expanded::after { display: none; }

  .proj-desc-toggle {
    display: inline-block;
    margin-top: 14px;
    background: none;
    border: none;
    padding: 0;
    font-family: var(--sans);
    font-size: 12px;
    letter-spacing: 0.22em;
    color: var(--gold);
    cursor: pointer;
    text-transform: uppercase;
    transition: opacity 0.25s;
  }
  .proj-desc-toggle:hover { opacity: 0.7; }
}

.proj-meta-dl { display: flex; flex-direction: column; }
.proj-meta-dl > div { display: grid; grid-template-columns: 1fr 1.5fr; padding: 11px 0; border-bottom: 1px solid var(--b); }
.proj-meta-dl > div:last-child { border-bottom: none; }
.proj-meta-dl dt { font-family: var(--sans); font-size: 15px; font-weight:500; letter-spacing: 0.1em; color: var(--ink3); padding-top: 2px; text-transform: uppercase; }
.proj-meta-dl dd { font-size: 16px; color: var(--ink); line-height: 1.55; }

/* ── Galerie horizontale strip ── */
.proj-strip { display: flex; height: 370px; gap: 10px;    margin: 3rem 0 2rem 0;}/*border-top: 1px solid var(--b); border-bottom: 1px solid var(--b); */
.proj-strip-cell { flex: 1; overflow: hidden; border-right: 1px solid var(--b); cursor: zoom-in; }
.proj-strip-cell:last-child { border-right: none; }
.proj-strip-cell img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.8s var(--ease); }
.proj-strip-cell:hover img { transform: scale(1.04); }

/* Strip Swiper (> 4 images) */
.proj-strip--swiper { position: relative; }
.proj-strip--swiper .swiper-wrapper { height: 370px; }
.proj-strip--swiper .swiper-slide.proj-strip-cell { flex: none; height: 370px; }
.proj-strip-prev, .proj-strip-next { position: absolute; top: 50%; transform: translateY(-50%); z-index: 10; background: rgba(243,240,233,0.88); border: 1px solid var(--b); width: 38px; height: 38px; display: flex; align-items: center; justify-content: center; font-size: 15px; color: var(--ink); transition: background 0.25s; cursor: pointer; }
.proj-strip-prev { left: 0; }
.proj-strip-next { right: 0; }
.proj-strip-prev:hover, .proj-strip-next:hover { background: var(--bg2); }

/* Lightbox */
.proj-lightbox { position: fixed; inset: 0; z-index: 2000; background: rgba(10,8,6,0.93); display: flex; flex-direction: column; align-items: center; justify-content: center; opacity: 0; pointer-events: none; transition: opacity 0.3s var(--ease); }
.proj-lightbox.open { opacity: 1; pointer-events: all; }
.lb-close { position: absolute; top: 22px; right: 30px; background: none; border: none; color: rgba(255,255,255,0.6); font-size: 30px; line-height: 1; cursor: pointer; z-index: 10; transition: color 0.2s; }
.lb-close:hover { color: #fff; }
.lb-swiper { width: 90vw; max-width: 1100px; }
.lb-slide { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 80vh; }
.lb-slide img { max-width: 100%; max-height: 73vh; object-fit: contain; display: block; }
.lb-caption { color: rgba(255,255,255,0.45); font-family: var(--sans); font-size: 11px; letter-spacing: 0.22em; margin-top: 14px; text-align: center; }
.lb-prev, .lb-next { position: absolute; top: 50%; transform: translateY(-50%); background: none; border: none; color: rgba(255,255,255,0.55); font-size: 22px; padding: 14px; z-index: 10; cursor: pointer; transition: color 0.2s; }
.lb-prev { left: 0; }
.lb-next { right: 0; }
.lb-prev:hover, .lb-next:hover { color: #fff; }
.lb-counter { color: rgba(255,255,255,0.35); font-family: var(--sans); font-size: 11px; letter-spacing: 0.24em; margin-top: 18px; }

/* ── Section approche ── */
.proj-approach { display: grid; grid-template-columns: repeat(4, 1fr); align-items: start; }
.proj-approach--no-img { grid-template-columns: repeat(3, 1fr); }
.proj-approach > * { border-right: 1px solid var(--b); }
.proj-approach > *:last-child { border-right: none; }
.proj-approach-head { padding: 72px 48px; }
.proj-approach-head h2 { font-family: var(--sans); font-weight: 300; font-size: clamp(26px, 2.8vw, 40px); line-height: 1.15; letter-spacing: 0.02em; margin-bottom: 20px; }
.proj-approach-col { padding: 72px 48px; font-size: 16px; line-height: 1.85; color: var(--ink2); }
.proj-approach-img { overflow: hidden; align-self: stretch; }
.proj-approach-img img { width: 100%; height: 100%; object-fit: cover; display: block; min-height: 360px; }

/* ── Navigation projets — 3 colonnes ── */
.proj-nav { display: grid; grid-template-columns: 1fr auto 1fr; margin: 4rem 0;}
.proj-nav-prev { padding: 40px 48px; }
.proj-nav-center { padding: 32px 48px; display: flex; align-items: center; justify-content: center; }
.proj-nav-next { padding: 40px 48px; text-align: right; }

.proj-nav-link { display: inline-flex; flex-direction: column; gap: 10px; text-decoration: none; color: var(--ink); transition: opacity 0.25s; }
.proj-nav-link:hover { opacity: 0.65; }
.proj-nav-dir { font-family: var(--sans); font-size: 15px; letter-spacing: 0.1em; color: var(--ink1); display: flex; align-items: center; gap: 10px; }
.proj-nav-prev .proj-nav-dir::before { content: '←'; font-family: var(--sans); font-size: 26px; color: var(--gold); }
.proj-nav-next .proj-nav-dir { flex-direction: row-reverse; }
.proj-nav-next .proj-nav-dir::after { content: '→'; font-family: var(--sans); font-size: 26px; color: var(--gold); }
.proj-nav-name { font-family: var(--sans); font-weight: 300; font-size: clamp(18px, 2vw, 24px); line-height: .2; }

.proj-nav-logo-link { display: flex; flex-direction: column; align-items: center; gap: 4px; text-decoration: none; color: var(--ink); }
.proj-nav-logo-name { font-family: var(--sans); font-weight: 400; font-size: 18px; letter-spacing: 0.08em; }
.proj-nav-logo-sub { font-family: var(--sans); font-weight: 300; font-size: 9px; letter-spacing: 0.34em; color: var(--ink3); }
.proj-nav-all-link { font-family: var(--sans); font-size: 15px; letter-spacing: 0.1em; color: var(--ink); text-decoration: none; border-bottom: 1px solid var(--gold); padding-bottom: 3px; transition: color 0.25s, border-color 0.25s; }
.proj-nav-all-link:hover { color: var(--gold); }

/* ── PAGE CONTACT ── */
.contact-top { display: grid; grid-template-columns: 5fr 7fr; margin-top: 155px; border-bottom: 1px solid var(--b); }
.contact-info { padding: 72px 64px; border-right: 1px solid var(--b); display: flex; flex-direction: column; }
.contact-h1 { margin-bottom: 28px; }
.contact-subtitle { font-family: var(--sans); font-weight: 300; font-size: clamp(18px, 1.9vw, 26px); line-height: 1.45; color: var(--ink); margin-bottom: 16px; }
.contact-desc { font-size: 16px; line-height: 1.85; color: var(--ink2); margin-bottom: 40px; }
.contact-direct { display: flex; flex-direction: column; gap: 6px; margin-bottom: 48px; }
.contact-direct-label { font-family: var(--sans); font-size: 11px; letter-spacing: 0.32em; color: var(--gold); text-transform: uppercase; display: block; margin-bottom: 12px; }
.contact-direct a { font-size: 15px; color: var(--ink); text-decoration: none; transition: color 0.2s; }
.contact-direct a:hover { color: var(--gold); }
.contact-addr { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border-top: 1px solid var(--b); padding-top: 32px; margin-top: auto; }
.contact-addr-label { font-family: var(--sans); font-size: 11px; letter-spacing: 0.3em; color: var(--ink3); text-transform: uppercase; display: block; margin-bottom: 12px; }
.contact-addr p { font-size: 15px; line-height: 1.7; color: var(--ink2); }
.contact-rdv { margin-top: 32px; }
.contact-photo-main { overflow: hidden; }
.contact-photo-main img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; }

.contact-bottom { display: grid; grid-template-columns: 1fr 3fr; border-bottom: 1px solid var(--b); }
.contact-social { padding: 56px 48px; border-right: 1px solid var(--b); display: flex; flex-direction: column; }
.contact-social-label { font-family: var(--sans); font-size: 11px; letter-spacing: 0.32em; color: var(--gold); text-transform: uppercase; display: block; margin-bottom: 24px; }
.contact-social a { font-size: 15px; color: var(--ink); text-decoration: none; transition: color 0.2s; display: block; margin-bottom: 10px; }
.contact-social a:hover { color: var(--gold); }
.contact-form-col { padding: 56px 64px; }
.contact-quote { font-family: var(--sans); font-weight: 300; font-size: clamp(18px, 1.8vw, 24px); line-height: 1.5; color: var(--ink); margin-bottom: 48px; }
.contact-form { display: flex; flex-direction: column; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
.form-field { display: flex; flex-direction: column; margin-bottom: 28px; }
.form-field label { font-family: var(--sans); font-size: 12px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink3); margin-bottom: 12px; font-weight:600; }
.form-field input, .form-field textarea { background: transparent; border: none; border-bottom: 1px solid rgba(26,23,20,0.22); padding: 10px 0; font-family: var(--sans); font-weight: 300; font-size: 15px; color: var(--ink); outline: none; transition: border-color 0.25s; -webkit-appearance: none; appearance: none; border-radius: 0; }
.form-field input:focus, .form-field textarea:focus { border-bottom-color: var(--gold); }
.form-field input::placeholder, .form-field textarea::placeholder { color: rgba(26,23,20,0.35); }
.form-field textarea { resize: none; height: 110px; }
.form-submit { margin-top: 8px; display: flex; align-items: flex-start; gap: 40px; }
.btn-submit { background: var(--gold); cursor:pointer; border: none; padding: 16px 40px; font-family: var(--sans); text-transform:uppercase; font-size: 13px; font-weight: 400; letter-spacing: 0.1em; color: var(--bg); position: relative; overflow: hidden;  flex-shrink: 0; }
.btn-submit::after { content: ''; position: absolute; inset: 0; background: var(--white); transform: translateX(-100%); transition: transform 0.4s var(--ease); }
.btn-submit:hover span { color: var(--ink); }
.btn-submit:hover::after { transform: translateX(0); }
.btn-submit span { position: relative; z-index: 1; }
.form-mention { font-size: 11px; color: var(--ink3); line-height: 1.7; margin-top: 4px; }
.form-req { color: var(--gold); }
.form-field.is-invalid input, .form-field.is-invalid textarea { border-bottom-color: #A3402F; }
.form-error { font-size: 12px; line-height: 1.5; color: #A3402F; margin-top: 8px; }
.form-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.btn-submit[disabled] { opacity: 0.6; cursor: wait; }

/* ── PAGE AGENCE ── */
.agc-wrap { display: grid; grid-template-columns: 5fr 7fr; margin-top: 155px; border-bottom: 1px solid var(--b); }
.agc-left { overflow: hidden; }
.agc-portrait { width: 100%; height: 100%; min-height: 600px; object-fit: cover; object-position: center top; display: block; }
.agc-right { border-left: 1px solid var(--b); display: flex; flex-direction: column; }

.agc-header { padding: 72px 56px 64px; border-bottom: 1px solid var(--b); }
.agc-label { font-family: var(--sans); font-size: 11px; letter-spacing: 0.32em; color: var(--gold); display: block; margin-bottom: 28px; text-transform: uppercase; }
.agc-name { font-family: var(--serif); font-weight: 300; font-size: clamp(40px, 5.5vw, 88px); line-height: 1.08; letter-spacing: 0.03em; color: var(--ink); margin-bottom: 24px; }

/* ── TITRES H1 — modèle unique (.agc-name) ───────────────────────
   Exception : .proj-hero-titre (blanc sur photo), défini plus haut. */
h1,
.agc-name,
.contact-h1,
.par-titre,
.par-detail-titre,
.proj-intro-title h1,
.page-lead h1,
.error-404 h1 { font-family: var(--serif); font-weight: 300; font-size: clamp(40px, 5.5vw, 88px); line-height: 1.08; letter-spacing: 0.03em; color: var(--ink); margin-bottom: 24px; }
.agc-subtitle { font-family: var(--sans); font-weight: 300; font-size: clamp(18px, 1.9vw, 26px); line-height: 1.45; color: var(--ink); margin-bottom: 36px; }
.agc-desc { font-size: 16px; line-height: 1.85; color: var(--ink2); margin-bottom: 18px; }
.agc-desc:last-child { margin-bottom: 0; }

.agc-lower { display: grid; grid-template-columns: 1fr 1fr; flex: 1; }
.agc-bio { padding: 48px 56px; border-right: 1px solid var(--b); display: flex; flex-direction: column; gap: 20px; }
.agc-bio p { font-size: 15px; line-height: 1.9; color: var(--ink2); }
.agc-deco { overflow: hidden; }
.agc-deco img { width: 100%; height: 100%; object-fit: cover; display: block; }

.agc-strip { display: grid; grid-template-columns: 1fr 1fr 1fr; border-bottom: 1px solid var(--b); }
.agc-strip-item { padding: 22px 40px; font-family: var(--sans); font-size: 11px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink3); text-decoration: none; display: flex; align-items: center; }
a.agc-strip-item:hover { color: var(--ink); }
.agc-strip-center { justify-content: center; border-left: 1px solid var(--b); border-right: 1px solid var(--b); }
.agc-strip-right { justify-content: flex-end; gap: 14px; }
.agc-strip-dash { display: block; width: 28px; height: 1px; background: currentColor; transition: width 0.3s var(--ease); }
a.agc-strip-item:hover .agc-strip-dash { width: 44px; }

/* ── PAGE PARUTIONS ── */
.par-intro { display: grid; grid-template-columns: 3fr 5fr 4fr; margin-top: 155px; border-bottom: 1px solid var(--b); }
.par-intro-left { padding: 72px 48px 64px; border-right: 1px solid var(--b); display: flex; flex-direction: column; }
.par-label { font-family: var(--sans); font-size: 11px; letter-spacing: 0.32em; color: var(--gold); display: block; margin-bottom: 24px; text-transform: uppercase; }
.par-titre { margin-bottom: 20px; }
.par-desc { font-size: 15px; line-height: 1.85; color: var(--ink2); margin-top: 8px; }
.par-intro-center { overflow: hidden; }
.par-hero-img { width: 100%; height: 100%; min-height: 420px; object-fit: cover; object-position: center; display: block; }
.par-intro-right { padding: 64px 48px; border-left: 1px solid var(--b); display: flex; flex-direction: column; justify-content: center; }

.par-citation-mark { font-family: var(--sans); font-size: 88px; line-height: 0.7; color: var(--gold); display: block; margin-bottom: 28px; }
.par-citation-text { font-family: var(--sans); font-weight: 300; font-size: clamp(18px, 1.8vw, 26px); line-height: 1.55; color: var(--ink); margin-bottom: 32px; }
.par-citation-source { font-family: var(--sans); font-size: 11px; letter-spacing: 0.28em; color: var(--ink3); display: flex; align-items: center; gap: 14px; text-transform: uppercase; }
.par-citation-line { display: block; width: 32px; height: 1px; background: var(--gold); flex-shrink: 0; }

.par-articles { border-bottom: 1px solid var(--b); }
.par-articles-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.par-articles-row + .par-articles-row { border-top: 1px solid var(--b); }
.par-article-card { display: flex; flex-direction: row; border-right: 1px solid var(--b); text-decoration: none; color: inherit; min-height: 340px; }
.par-article-card:last-child { border-right: none; }
.par-article-cover { width: 44%; flex-shrink: 0; overflow: hidden; align-self: flex-start; padding: 1.5rem; }
.par-article-cover img { width: 100%; height: auto; display: block; transition: transform 0.8s var(--ease); }
.par-article-card:hover .par-article-cover img { transform: scale(1.04); }
.par-article-info { flex: 1; padding: 28px 20px 32px 24px; display: flex; flex-direction: column; }
.par-article-date { font-family: var(--sans); font-size: 10px; letter-spacing: 0.3em; color: var(--gold); display: block; text-transform: uppercase; margin-bottom: 14px; }
.par-article-mag { font-family: var(--sans); font-weight: 400; font-size: clamp(15px, 1.5vw, 22px); line-height: 1.2; color: var(--ink); margin-bottom: 14px; }
.par-article-titre { font-family: var(--sans); font-style: italic; font-weight: 300; font-size: clamp(12px, 1.05vw, 14px); line-height: 1.65; color: var(--ink2); flex: 1; }
.par-article-cta { font-family: var(--sans); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink3); display: flex; align-items: center; gap: 12px; transition: color 0.25s; margin-top: 20px; }
.par-link-dash { display: block; width: 24px; height: 1px; background: currentColor; transition: width 0.3s var(--ease); }
.par-article-card:hover .par-article-cta { color: var(--gold); }
.par-article-card:hover .par-link-dash { width: 40px; }
/* lien externe sur page détail */
.par-article-link { font-family: var(--sans); font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ink3); text-decoration: none; display: inline-flex; align-items: center; gap: 12px; transition: color 0.25s; }
.par-article-link:hover { color: var(--gold); }
.par-article-link:hover .par-link-dash { width: 40px; }

/* ── PAGE PARUTION DÉTAIL ── */
a.par-article-card { text-decoration: none; color: inherit; }

.par-detail-head { padding: 72px 80px 64px; border-bottom: 1px solid var(--b); }
.par-detail-meta { display: flex; align-items: center; gap: 32px; margin-bottom: 20px; }
.par-detail-titre { margin-bottom: 32px; max-width: 760px; }

.par-img-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--b); }
.par-img-cell { overflow: hidden; border-right: 1px solid var(--b); border-bottom: 1px solid var(--b); cursor: zoom-in; }
.par-img-cell:nth-child(3n) { border-right: none; }
.par-img-cell img { width: 100%; height: auto; display: block; transition: transform 0.8s var(--ease); padding: 1.5rem; }
.par-img-cell:hover img { transform: scale(1.04); }

.par-logos-strip { display: flex; align-items: stretch; border-bottom: 1px solid var(--b); }
.par-logos-label { padding: 28px 40px; font-family: var(--sans); font-style: italic; font-size: clamp(16px, 1.5vw, 22px); color: var(--ink); white-space: nowrap; border-right: 1px solid var(--b); display: flex; align-items: center; min-width: 220px; }
.par-logos-list { display: flex; align-items: center; flex: 1; }
.par-logo-item { flex: 1; padding: 24px 20px; display: flex; align-items: center; justify-content: center; border-right: 1px solid var(--b); text-decoration: none; transition: opacity 0.25s; }
.par-logo-item:last-child { border-right: none; }
.par-logo-item img { max-height: 34px; width: auto; max-width: 90%; object-fit: contain; filter: grayscale(100%); opacity: 0.45; transition: opacity 0.3s, filter 0.3s; }
.par-logo-item:hover img { filter: grayscale(0%); opacity: 1; }
.par-logo-nom { font-family: var(--sans); font-size: 10px; letter-spacing: 0.24em; color: var(--ink3); text-transform: uppercase; text-align: center; }

/* ── RESPONSIVE 1360px ──
@media (max-width: 1920px) {
  .proj-top { grid-template-columns: 1fr; margin-top: 80px; }
  .immo-intro { grid-template-columns: 1fr; }
  .immo-intro-text { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .immo-intro-img-placeholder { min-height: 280px; }
} */

/* ── RESPONSIVE 1024px ── */
@media (max-width: 1024px) {
   #content { max-width: 100%; }
  .services { grid-template-columns: repeat(2, 1fr); }
  .svc:nth-child(2n) { border-right: none; }
  .contact-top { grid-template-columns: 1fr; margin-top: 60px; }
  .contact-photo-main { height: 70vw; order: -1; }
  .contact-form-col { padding: 40px 24px 48px; order : -1; }
  .form-submit{flex-direction: column; gap: 20px;}
  .proj-top-left { padding: 40px 32px 48px; }
  .proj-top-right { padding: 40px 32px 48px; }
  .proj-cover { min-height: 420px; }
  .proj-approach-head { padding: 56px 32px; }
  .proj-approach-col { padding: 56px 32px; }
  .proj-nav-prev { padding: 32px 32px; }
  .proj-nav-next { padding: 32px 32px; }
  .proj-nav-center { padding: 24px 32px; }
  .agc-wrap { grid-template-columns: 1fr; margin-top: 155px; }
  .agc-left { height: 56vw; max-height: 640px; }
  .agc-portrait { min-height: unset; }
  .agc-right { border-left: none; border-top: 1px solid var(--b); }
  .agc-header { padding: 56px 40px 48px; }
  .agc-lower { grid-template-columns: 1fr; }
  .agc-bio { padding: 40px; border-right: none; border-bottom: 1px solid var(--b); }
  .agc-deco { height: 44vw; }
  .agc-strip-item { padding: 20px 32px; }
  .par-intro { grid-template-columns: 1fr; margin-top: 155px; }
  .par-intro-left { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 32px 40px; }
  .par-intro-center { order: -1; }
  .par-hero-img { min-height: 50vw; }
  .par-intro-right { border-left: none; border-top: 1px solid var(--b); padding: 48px 32px; }
  .par-articles-row { grid-template-columns: 1fr; }
  .par-article-card { border-right: none; border-bottom: 1px solid var(--b); min-height: 220px; }
  .par-article-card:last-child { border-bottom: none; }
  .par-article-cover { width: 38%; }
  .par-logos-strip { flex-direction: column; }
  .par-logos-label { border-right: none; border-bottom: 1px solid var(--b); min-width: 0; padding: 20px 24px; }
  .par-logos-list { flex-wrap: wrap; }
  .par-logo-item { flex: 0 0 50%; border-bottom: 1px solid var(--b); }
  .par-logo-item:nth-child(even) { border-right: none; }
  .par-logo-item:nth-last-child(-n+2) { border-bottom: none; }
  .statement { grid-template-columns: 1fr; gap: 40px; padding: 64px calc(10% + 24px); }
  .statement-right { border-left: none; border-top: 1px solid var(--b); padding-left: 0; padding-top: 40px; }
  .foot-cols { grid-template-columns: repeat(2, 1fr); gap: calc(var(--gap) * 3) calc(var(--gap) * 2); }
}

/* ── RESPONSIVE 820px (tablette portrait) ── */
@media only screen 
  and (min-width: 900px) 
  and (max-width: 1024px) 
  and (orientation: portrait) {
  .statement { padding: 4rem 8%; }
}

/* ── RESPONSIVE 768px ── */
@media (max-width: 768px) {
  #content { max-width: 100%; }
  .home-photos,
  .projects,
  .proj-strip,
  .proj-strip--swiper,
  .gal-full,
  .gal-duo,
  .gal-asym,
  .gal-trio,
  .par-img-grid,
  .statement { width: calc(100% + 2 * var(--gap)); margin-left: calc(-1 * var(--gap)); }
  header { padding: 0 24px; height: 60px; }
  .logo-header .h-name { font-size: 18px; }
  .logo-header-img { height: 36px; }
  .burger { margin-top: 0; align-self: center; }
  .header-cta { margin-top: 0; align-self: center; padding: 10px 18px; font-size: 12px; }
  .header-cta-long { display: none; }
  .header-cta-short { display: inline; }
  .cta-final { padding: calc(var(--gap) * 4) var(--gap); }
  .cta-row { margin: calc(var(--gap) * 2) 0; }
  .project-item.paysage img { height: 100%; }
  .hero { margin-top: 0; }
  /* header 60px, hero sans margin-top : le nom se recale sur la nav */
  /*.hero-title .name { top: 30px; }*/
  .panel { left: 0; max-width: 100%; }
  .panel-inner { padding: 40px 32px 36px; }
  .proj-row-duo { grid-template-columns: 1fr; }
  .project-item-info { opacity: 1; transform: translateY(0); }
  .pinterest-btn { opacity: 1; transform: scale(1); }
  .services { grid-template-columns: repeat(2, 1fr); }
  .svc { padding: 52px 32px; }
  .svc:nth-child(2n) { border-right: none; }
  .home-photos { grid-template-columns: repeat(2, 1fr); }
  .home-photo-img { aspect-ratio: 3/4; }
  .logos-band { padding: 16px 20px; gap: 16px; }
  .logos-band-swiper { width: 0; }
  .logos-band-item { width: 35vw !important; }
  .presse { flex-direction: column; }
  .presse-tag { writing-mode: horizontal-tb; transform: none; border-right: none; border-bottom: 1px solid var(--b); padding: 18px 24px; }
  .presse-items { flex-wrap: wrap; }
  .presse-items span { flex: 0 0 50%; padding: 18px 24px; font-size: 16px; text-align: left; border-right: none; border-bottom: 1px solid var(--b); }
  .presse-items span:nth-child(odd) { border-right: 1px solid var(--b); }
  .presse-items span:last-child { border-bottom: none; }
  .foot { padding: calc(var(--gap) * 3) var(--gap) calc(var(--gap) * 2); }
  .proj-meta { grid-template-columns: 1fr 1fr; }
  .proj-meta-item:nth-child(2) { border-right: none; }
  .proj-meta-item:nth-child(3) { border-top: 1px solid var(--b); }
  .proj-meta-item:nth-child(4) { border-top: 1px solid var(--b); border-right: none; }
  .proj-intro { grid-template-columns: 1fr; }
  .proj-intro-title { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .proj-intro-text { padding: 40px 24px; }
  .gal-duo { grid-template-columns: 1fr; }
  .gal-asym { grid-template-columns: 1fr; }
  .gal-asym .gal-cell { border-right: none; border-bottom: 1px solid var(--b); }
  .gal-trio { grid-template-columns: 1fr; }
  .gal-trio .gal-cell { border-right: none; border-bottom: 1px solid var(--b); }
  .proj-top { grid-template-columns: 1fr; margin-top: 60px; }
  .proj-top-left { border-right: none; border-bottom: 1px solid var(--b); padding: 32px 20px; }
  .proj-top-center { order: -1; }
  .proj-cover { min-height: 60vw; }
  .proj-top-right { padding: 28px 20px; }
  .proj-strip:not(.proj-strip--swiper) { flex-wrap: wrap; height: auto; }
  .proj-strip:not(.proj-strip--swiper) .proj-strip-cell { flex: 1 0 50%; height: 240px; border-right: none; border-bottom: 1px solid var(--b); }
  .proj-strip:not(.proj-strip--swiper) .proj-strip-cell:nth-child(odd) { border-right: 1px solid var(--b); }
  .proj-strip:not(.proj-strip--swiper) .proj-strip-cell:last-child { border-bottom: none; }
  .proj-strip--swiper { height: 260px; }
  .proj-strip--swiper .swiper-wrapper, .proj-strip--swiper .swiper-slide.proj-strip-cell { height: 260px; }
  .proj-approach { grid-template-columns: 1fr; }
  .proj-approach--no-img { grid-template-columns: 1fr; }
  .proj-approach-head { grid-column: 1 / -1; border-right: none; border-bottom: 1px solid var(--b); padding: 40px 20px 32px; }
  .proj-approach-col { padding: 32px 20px; border-right: none; border-bottom: 1px solid var(--b); }
  .proj-approach-col:last-of-type { border-bottom: none; }
  .proj-approach-img { grid-column: 1 / -1; border-right: none; border-top: 1px solid var(--b); }
  .proj-approach-img img { min-height: 260px; }
  .proj-nav { grid-template-columns: 1fr 1fr; }
  .proj-nav-center { display: none; }
  .proj-nav-prev { padding: 32px 24px; }
  .proj-nav-next { padding: 32px 24px; }
  .agc-wrap { margin-top: 60px; }
  .agc-left { height: 75vw; max-height: none; }
  .agc-header { padding: 40px 24px 36px; }
  .agc-bio { padding: 32px 24px; }
  .agc-deco { height: 58vw; }
  .agc-strip { grid-template-columns: 1fr; }
  .agc-strip-item { padding: 18px 24px; border-bottom: 1px solid var(--b); }
  .agc-strip-center { border-left: none; border-right: none; }
  .agc-strip-right { justify-content: flex-start; border-bottom: none; }
  .par-intro { margin-top: 60px; }
  .par-intro-left { padding: 36px 24px 32px; }
  .par-intro-right { padding: 36px 24px; }
  .par-article-card { flex-direction: column; min-height: auto; }
  .par-article-cover { width: 100%; max-height: 80vw; }
  .par-article-info { min-height: auto; padding: 20px 24px 28px; }
  .par-logos-label { padding: 18px 24px; }
  .par-logo-item { padding: 18px 12px; }
  .par-detail-head { padding: 40px 24px 36px; }
  .par-detail-meta { gap: 16px; }
  .par-img-grid { grid-template-columns: repeat(2, 1fr); }
  .par-img-cell { border-right: 1px solid var(--b); }
  .par-img-cell:nth-child(2n) { border-right: none; }
  .contact-top { grid-template-columns: 1fr; margin-top: 60px; }
  .contact-info { padding: 40px 24px 36px; border-right: none; border-bottom: 1px solid var(--b); }
  .contact-photo-main { height: 70vw; order: -1; }
  .contact-bottom { grid-template-columns: 1fr; }
  .contact-social { padding: 36px 24px; border-right: none; border-bottom: 1px solid var(--b); flex-direction: row; flex-wrap: wrap; align-items: center; gap: 0 32px; }
  .contact-social-label { width: 100%; margin-bottom: 16px; }
  .contact-form-col { padding: 40px 24px 48px; order : -1; }
  .form-row { grid-template-columns: 1fr; }
  .gal-portrait-centered { max-width: 100%; }
}

/* ── PAGE LEAD — header commun pages intérieures ── */
.page-lead { padding: 90px 0 52px; border-bottom: 1px solid var(--b); }
.page-lead-tag { font-family: var(--sans); font-size: 12px; letter-spacing: 0.3em; color: var(--gold); display: block; margin-bottom: 20px; }
.page-lead h1 { margin-bottom: 0; }
.page-lead-text { margin-top: 24px; max-width: 580px; font-size: 16px; line-height: 1.8; color: var(--ink2); }

/* ── FORMULAIRE — résultat flash (PRG) ── */
.form-result { margin: 0; padding: 20px 28px; border-left: 3px solid; }
.form-result.success { border-color: #6B9E6B; background: rgba(107,158,107,0.08); }
.form-result.success p { color: #3d6b3d; font-size: 15px; }
.form-result.error { border-color: var(--gold); background: rgba(184,145,58,0.08); }
.form-result.error p { color: var(--ink2); font-size: 15px; }
.form-req { color: var(--gold); }

/* ── PARUTIONS — grille ── */
.parutions-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--b); }
.parution-item { padding: 56px 48px; border-right: 1px solid var(--b); border-bottom: 1px solid var(--b); display: flex; align-items: center; justify-content: center; text-decoration: none; transition: background 0.3s; min-height: 160px; }
.parution-item:nth-child(3n) { border-right: none; }
.parution-item:hover { background: var(--bg2); }
.parution-item img { max-width: 160px; max-height: 60px; object-fit: contain; filter: grayscale(1) opacity(0.55); transition: filter 0.3s; }
.parution-item:hover img { filter: grayscale(0) opacity(1); }
.parution-nom { font-family: var(--sans); font-weight: 300; font-size: 22px; letter-spacing: 0.06em; color: var(--ink2); transition: color 0.25s; }
.parution-item:hover .parution-nom { color: var(--ink); }

/* ── COLLECTIONS — intro ── */
.collections-intro { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--b); }
.collections-intro-text { padding: 80px 64px 80px 48px; border-right: 1px solid var(--b); }
.collections-intro-text p { font-size: 16px; line-height: 1.85; color: var(--ink2); margin-bottom: 20px; }
.collections-intro-image { position: relative; overflow: hidden; }
.collections-intro-img-placeholder { width: 100%; height: 100%; min-height: 380px; background: var(--bg3); display: block; }

/* ── COLLECTIONS — catégories ── */
.collections-categories { display: grid; grid-template-columns: repeat(3, 1fr); border-bottom: 1px solid var(--b); }
.collections-cat { border-right: 1px solid var(--b); overflow: hidden; }
.collections-cat:last-child { border-right: none; }
.collections-cat-img-placeholder { width: 100%; aspect-ratio: 4/3; background: var(--bg3); display: block; }
.collections-cat-body { padding: 32px 36px; }
.collections-cat-body h3 { font-family: var(--sans); font-weight: 300; font-size: 22px; letter-spacing: 0.04em; margin-bottom: 12px; color: var(--ink); }
.collections-cat-body p { font-size: 14px; line-height: 1.75; color: var(--ink2); }
.collections-partners-cta { border-bottom: 1px solid var(--b); }

/* ── IMMOBILIER — intro ── */
.immo-intro { display: grid; grid-template-columns: 1fr 1fr; border-bottom: 1px solid var(--b); }
.immo-intro-text { padding: 80px 64px 80px 48px; border-right: 1px solid var(--b); }
.immo-intro-text p { font-size: 16px; line-height: 1.85; color: var(--ink2); margin-bottom: 20px; }
.immo-intro-image { position: relative; overflow: hidden; }
.immo-intro-img-placeholder { width: 100%; height: 100%; min-height: 380px; background: var(--bg3); display: block; }

/* ── IMMOBILIER — prestations ── */
.immo-prestations { border-bottom: 1px solid var(--b); display: grid; grid-template-columns: 260px 1fr; }
.immo-prestations-title { padding: 64px 48px; border-right: 1px solid var(--b); display: flex; align-items: flex-start; }
.immo-prestations-title span { font-family: var(--sans); font-size: 12px; letter-spacing: 0.28em; color: var(--gold); writing-mode: vertical-rl; transform: rotate(180deg); }
.immo-prestations-grid { display: grid; grid-template-columns: 1fr 1fr; }
.immo-prestation { border-right: 1px solid var(--b); border-bottom: 1px solid var(--b); }
.immo-prestation:nth-child(even) { border-right: none; }
.immo-prestation:nth-last-child(-n+2) { border-bottom: none; }
.immo-prestation-num { font-family: var(--sans); font-size: 20px; letter-spacing: 0.28em; color: var(--beige); display: block; margin-bottom: 16px; }

/* ── PAGE SERVICE (template /services/{slug}) ── */

/* Intro : titre + séparateur + texte à gauche / photo à droite */
.svc-page-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; padding: 90px 0 64px; border-bottom: 1px solid var(--b); align-items: start; }
.svc-page-title { font-family: var(--serif); font-weight: 400; font-size: clamp(2.2rem, 1.6rem + 2.6vw, 3.6rem); line-height: 1.12; color: var(--ink); margin: 0 0 28px; }
.svc-page-title span { display: block; }
.svc-page-title .svc-page-title-sub { font-family: var(--sans); font-weight: 400; font-size: clamp(1.2rem, 0.9rem + 1vw, 1.7rem); color: var(--bleu); letter-spacing: 0.01em; margin-top: 10px; }
.svc-page-sep { display: block; width: 60px; height: 1px; background: var(--b); margin-bottom: 28px; }
.svc-page-text { max-width: 700px; font-size: 17px; line-height: 1.85; color: var(--ink2); }
.svc-page-text + .svc-page-text { margin-top: 20px; } /* intro en plusieurs paragraphes (page immobilier) */
.svc-page-intro-image { position: relative; overflow: hidden; }
.svc-page-intro-img { width: 100%; height: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.svc-page-intro-img-placeholder { width: 100%; height: 100%; aspect-ratio: 4/3; background: var(--bg3); display: block; }

/* Étapes : label + grille 2x2 + encart CTA sombre */
.svc-page-steps { padding: 64px 0 90px; }
.svc-page-steps-head { margin-bottom: 40px; }
.svc-page-steps-head span { font-family: var(--sans); font-size: 16px; font-weight: 500; letter-spacing: 0.18em; color: var(--ink3); text-transform: uppercase; }
.svc-page-steps-body { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: auto auto; gap: 48px; align-items: start; }
.svc-page-steps-grid { display: contents; }
.svc-page-steps-grid .svc { border-right: 1px solid var(--b); }
.svc-page-steps-grid .svc:nth-child(even) { border-right: none; }
.svc-page-step-num { display: block; font-family: var(--sans); font-size: 20px; color: var(--beige); margin-bottom: 10px; }

.svc-page-cta { grid-column: 3; grid-row: 1 / 3; background: var(--bleu); color: var(--ink); padding: 40px 32px; display: flex; flex-direction: column; }
.svc-page-cta-tag { font-family: var(--sans); font-size: 12px; font-weight: 500; letter-spacing: 0.14em; color: var(--bg); text-transform: uppercase; margin-bottom: 24px; }
.svc-page-cta-title { font-family: var(--serif); font-weight: 400; font-size: clamp(2rem, 1.5rem + 2vw, 2.8rem); line-height: 1.15; color: var(--ink); margin-bottom: 20px; }
.svc-page-cta-text { font-family: var(--sans); font-weight: 300; font-size: 16px; line-height: 1.7; color: var(--ink); margin-bottom: 32px; }
.svc-page-cta-btn { margin-top: auto; display: inline-flex; align-items: center; justify-content: center; background: var(--bg); color: var(--ink); font-family: var(--sans); font-size: 12px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; text-decoration: none; padding: 16px 20px; transition: background 0.3s var(--ease); }
.svc-page-cta-btn:hover { background: var(--bg2); }

/* Vidéo facultative : dans l'intro, sous le H1, à gauche du texte */
.svc-page-intro-media { display: grid; grid-template-columns: minmax(0, 38%) 1fr; gap: 32px; align-items: start; }
.svc-page-video { overflow: hidden; background: var(--bg3); }
.svc-page-video video { width: 100%; aspect-ratio: 3/4; object-fit: cover; display: block; }

/* ── MENTIONS LÉGALES ── */
.mentions-body { max-width: 820px; margin: 0 auto; padding: 64px 48px; }
.mentions-section { padding-bottom: 48px; margin-bottom: 48px; border-bottom: 1px solid var(--b); }
.mentions-section:last-child { border-bottom: none; padding-bottom: 0; }
.mentions-section h2 { font-family: var(--sans); font-weight: 300; font-size: 28px; letter-spacing: 0.03em; color: var(--ink); margin-bottom: 24px; }
.mentions-section p { font-size: 15px; line-height: 1.85; color: var(--ink2); margin-bottom: 14px; }
.mentions-section p:last-child { margin-bottom: 0; }
.mentions-section a { color: var(--gold); text-decoration: none; transition: color 0.25s; }
.mentions-section a:hover { color: var(--ink); }

/* ── ERREUR 404 ── */
.error-404 { padding: 120px 48px; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: 55vh; border-bottom: 1px solid var(--b); }
.error-404-code { font-family: var(--sans); font-size: clamp(80px, 14vw, 180px); font-weight: 300; line-height: 1; letter-spacing: 0.08em; color: rgba(184,145,58,0.2); display: block; }
.error-404 h1 { margin-top: -12px; margin-bottom: 20px; }
.error-404 p { font-size: 16px; color: var(--ink2); line-height: 1.7; margin-bottom: 40px; }

/* ── PROJET DÉTAIL — lien Pinterest dans intro ── */
.proj-pinterest-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 28px; font-family: var(--sans); font-size: 11px; letter-spacing: 0.22em; color: var(--ink3); text-decoration: none; transition: color 0.25s; }
.proj-pinterest-link svg { width: 18px; height: 18px; fill: #E60023; flex-shrink: 0; }
.proj-pinterest-link:hover { color: #E60023; }

/* ── RESPONSIVE 1920px ── */
@media (max-width: 1920px) {
  header { height: 60px; }
  #content { max-width: 95%; }
  .proj-top {grid-template-columns: 1fr 1fr; margin-top:0}
  .proj-top-desc{font-size: clamp(14px, 1.2vw, 16px); line-height: 1.4;}
  .proj-top-right{padding-top:0}
}

/* ── RESPONSIVE 1920px ──
@media (max-width: 1920px) {
  .proj-top { grid-template-columns: 1fr; margin-top: 80px; }
  .immo-intro { grid-template-columns: 1fr; }
  .immo-intro-text { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .immo-intro-img-placeholder { min-height: 280px; }
} */

/* ── RESPONSIVE 768px — pages intérieures ── */
@media (max-width: 768px) {
  #content { max-width: 100%; }
  .proj-top {grid-template-columns: 1fr;}
  .page-lead { padding-left:0 }
  .form-result { margin: 0; }
  .agence-bio { grid-template-columns: 1fr; }
  .agence-bio-text { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .agence-bio-img-placeholder { min-height: 300px; }
  .agence-valeurs { grid-template-columns: 1fr; }
  .agence-valeur { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .agence-valeur:last-child { border-bottom: none; }
  .agence-expertises { grid-template-columns: 1fr; }
  .agence-expertises-label { border-right: none; border-bottom: 1px solid var(--b); padding: 24px; }
  .agence-expertises-label span { writing-mode: horizontal-tb; transform: none; }
  .agence-expertises-list { grid-template-columns: 1fr; }
  .agence-expertise-item { border-right: none; padding: 32px 24px; border-bottom: 1px solid var(--b); }
  .agence-expertise-item:nth-last-child(-n+2) { border-bottom: 1px solid var(--b); }
  .agence-expertise-item:last-child { border-bottom: none; }
  .parutions-grid { grid-template-columns: 1fr 1fr; }
  .parution-item { padding: 36px 24px; }
  .parution-item:nth-child(3n) { border-right: 1px solid var(--b); }
  .parution-item:nth-child(even) { border-right: none; }
  .collections-intro { grid-template-columns: 1fr; }
  .collections-intro-text { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .collections-intro-img-placeholder { min-height: 280px; }
  .collections-categories { grid-template-columns: 1fr; }
  .svc-page-intro { grid-template-columns: 1fr; gap: 32px; padding: 48px 0; }
  .svc-page-intro-img, .svc-page-intro-img-placeholder { aspect-ratio: 16/10; }
  .svc-page-steps { padding: 48px 0 64px; }
  .svc-page-steps-body { grid-template-columns: 1fr; grid-template-rows: none; gap: 40px; }
  .svc-page-steps-grid { display: block; }
  .svc-page-steps-grid .svc { border-right: none; border-bottom: 1px solid var(--b); padding: 32px 24px; }
  .svc-page-steps-grid .svc:last-child { border-bottom: none; }
  .svc-page-cta { grid-column: auto; grid-row: auto; }
  .collections-cat { border-right: none; border-bottom: 1px solid var(--b); }
  .immo-intro { grid-template-columns: 1fr; }
  .immo-intro-text { border-right: none; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .immo-intro-img-placeholder { min-height: 280px; }
  .immo-prestations { grid-template-columns: 1fr; }
  .immo-prestations-title { border-right: none; border-bottom: 1px solid var(--b); padding: 24px; }
  .immo-prestations-title span { writing-mode: horizontal-tb; transform: none; }
  .immo-prestations-grid { grid-template-columns: 1fr; }
  .immo-prestation { border-right: none; border-bottom: 1px solid var(--b); }
  .immo-prestation:nth-last-child(-n+2) { border-bottom: 1px solid var(--b); }
  .immo-prestation:last-child { border-bottom: none; }
  .mentions-body { padding: 48px 24px; }
  .error-404 { padding: 80px 24px; min-height: 45vh; }
}

/* ── RESPONSIVE 640px (footer 1 colonne) ── */
@media (max-width: 640px) {
  .foot-cols { grid-template-columns: 1fr; gap: calc(var(--gap) * 2.5); padding-bottom: calc(var(--gap) * 2.5); }
  .foot-col-title { font-size: 13px; margin-bottom: var(--gap); }
  .foot-col-list a { font-size: 16px; }
  .foot-col-list li { margin-bottom: calc(var(--gap) * 0.7); }
  .foot-end { padding-top: calc(var(--gap) * 2); }
  .foot-end-word { font-size: 26px; }
  .svc-page-intro-media { grid-template-columns: 1fr; gap: 24px; }
  .svc-page-video { max-width: 320px; }
  .foot-end-legal { font-size: 14px; margin-top: var(--gap); }
}

/* ── RESPONSIVE 480px ── */
@media (max-width: 480px) {
  .proj-top-left { padding: 24px 16px; }
  .proj-top-right { padding: 20px 16px; }
  .proj-titre { font-size: clamp(22px, 6vw, 32px); }
  .proj-approach-head { padding: 32px 16px; }
  .proj-approach-col { padding: 28px 16px; }
  .proj-nav-prev, .proj-nav-next { padding: 24px 16px; }
  html { cursor: auto; }
  body { cursor: auto; }
  a, button { cursor: pointer; }
  #cur-dot, #cur-ring { display: none; }
  .btn-submit { cursor: pointer; }
  .project-item.portrait img { aspect-ratio: unset; }
  .services { grid-template-columns: 1fr; }
  .svc { border-right: none !important; border-top: none !important; border-bottom: 1px solid var(--b); padding: 48px 24px; }
  .svc:last-child { border-bottom: none; }
  .presse-items span { flex: 0 0 100%; border-right: none; }
  .presse-items span:nth-child(odd) { border-right: none; }
  .agc-left { height: 88vw; }
  .agc-header { padding: 32px 20px 28px; }
  .agc-bio { padding: 28px 20px; gap: 14px; }
  .agc-deco { height: 68vw; }
  .agc-strip-item { padding: 16px 20px; }
  .par-detail-head { padding: 32px 20px 28px; }
  .par-img-grid { grid-template-columns: 1fr; }
  .par-img-cell { border-right: none; }
  .contact-info { padding: 32px 20px 28px; }
  .contact-form-col { padding: 32px 20px 40px; }
  .contact-social { padding: 28px 20px; }
  .contact-quote { margin-bottom: 32px; }
}

/* ── HERO SLIDES — fondu croisé simple, sans zoom ─────────────── */
.hero-slides { position: absolute; inset: 0; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.1s ease-in-out; }
.hero-slide.active { opacity: 1; }
.hero-slide .hero-img { animation: none; transform: none; }

/* Respect des préférences système : plus aucune transition */
@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}
