:root{--accent:#AD4F91}

/* Navigation - volontairement simple, fixe et sans effet de verre. */
.site-header{position:fixed;top:0;left:0;right:0;z-index:80;background:#f5f0e8;border-bottom:1px solid rgba(42,63,54,.18);box-shadow:none;backdrop-filter:none}
.site-header .wordmark{display:inline-flex;align-items:center;gap:.45rem}
.site-header .wordmark img{width:24px;height:24px;object-fit:contain;transform:rotate(-5deg)}
.site-header nav a:hover,.site-header nav a:focus-visible{color:var(--accent)}

/* Numérotation commune des sections 02 à 05. */
.numbered-section{position:relative}
.numbered-section .section-intro{position:relative;padding-top:1.2rem}
.numbered-section .section-number{margin:0 0 -.25rem;color:var(--accent);font-family:"Spectral",serif;font-size:clamp(5.5rem,11vw,10rem);font-weight:500;line-height:.75;letter-spacing:-.07em}
.numbered-section .section-intro>.index{margin:.8rem 0 1.1rem;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--green)}
.numbered-section .section-intro::after{content:"";display:block;width:5.5rem;height:1px;margin-top:2rem;background:var(--green)}

/* 02 - trois entrées, une image forte par bloc. */
.audiences .section-intro h2{max-width:11ch}
.audience-grid{align-items:stretch}
.audience{display:flex;flex-direction:column}
.audience figure{order:-2;margin:0 0 1.4rem;aspect-ratio:4/5;overflow:hidden;background:#e7e0d5}
.audience figure img{width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.audience:hover figure img{transform:scale(1.025)}
.audience>span{color:var(--accent)}
.audience>a{margin-top:auto}

/* 03 - repères sobres, copie courte. */
.formats .section-intro h2{max-width:17ch}
.formats .section-intro{margin-bottom:clamp(1.5rem,3vw,3rem)}
.fork-visual{width:min(1080px,96%);height:clamp(108px,18vw,205px);margin:0 auto -1px;overflow:hidden}
.fork-visual img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center 48%;filter:grayscale(1);opacity:.94;transform:translateY(32px)}
.formats .format-grid{position:relative;z-index:2;background:#fff}
.format>span{color:var(--accent)}
.format b{color:var(--accent)}

/* 04 - une seule image en surface, dossier sur demande. */
.proof-list{border-top:1px solid var(--green)}
.proof{grid-template-columns:minmax(3rem,.35fr) minmax(15rem,.85fr) minmax(18rem,1.25fr);gap:clamp(1.4rem,4vw,5rem);align-items:start;border-bottom:1px solid rgba(42,63,54,.35)}
.proof-number{color:var(--accent);font-family:"Spectral",serif;font-size:clamp(3.3rem,6vw,6rem);line-height:.85}
.proof-copy{align-self:center}
.proof-copy .client{color:var(--green);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}
.proof-copy .role{font-size:.78rem;letter-spacing:.05em;opacity:.72}
.proof-single{margin:0;aspect-ratio:4/3;overflow:hidden;background:#e9e3d8}
.proof-single img{width:100%;height:100%;display:block;object-fit:cover}
.proof:nth-child(1) .proof-single img,.proof:nth-child(3) .proof-single img{object-fit:contain;background:#f1ebe2}
.proof-open{display:block;width:100%;margin-top:1.5rem;padding:.8rem 0;border:0;border-top:1px solid var(--green);border-bottom:1px solid var(--green);background:transparent;color:var(--green);font:inherit;text-align:left;cursor:pointer}
.proof-open span{display:block;margin-top:.35rem;color:var(--accent);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em}
.proof-open:hover span,.proof-open:focus-visible span{text-decoration:underline;text-underline-offset:.25em}

/* 05 - le numéro suit le même système, sans modifier le contenu. */
.motion-section .section-number{color:var(--accent)}

/* Dossiers clients plein écran. */
body.dossier-open{overflow:hidden}
.case-dossier[hidden]{display:none}
.case-dossier{position:fixed;inset:0;z-index:140;overflow-y:auto;overscroll-behavior:contain;background:#f3eee5;color:var(--green);opacity:0;transition:opacity .24s ease}
.case-dossier.is-open{opacity:1}
.dossier-close{position:fixed;top:1rem;right:1.25rem;z-index:3;display:flex;align-items:center;gap:.75rem;padding:.6rem .85rem;border:1px solid var(--green);background:#f3eee5;color:var(--green);font:500 .72rem/1 "Be Vietnam Pro",sans-serif;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}
.dossier-close span{color:var(--accent);font-size:1.5rem;line-height:.6}
.dossier-progress{position:fixed;top:0;left:0;right:0;z-index:4;height:3px;background:transparent}
.dossier-progress span{display:block;width:0;height:100%;background:var(--accent)}
.dossier-inner{width:min(1180px,calc(100% - 3rem));margin:0 auto;padding:clamp(6rem,10vw,9rem) 0 8rem}
.dossier-cover{display:grid;grid-template-columns:.55fr 1.4fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:end;padding-bottom:clamp(3rem,7vw,6rem);border-bottom:1px solid var(--green)}
.dossier-cover>p:first-child,.dossier-label{color:var(--accent);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:600}
.dossier-cover h2{margin:0;font:500 clamp(3.4rem,8vw,7.5rem)/.82 "Spectral",serif;letter-spacing:-.055em}
.dossier-cover h2 em{color:var(--accent);font-weight:500}
.dossier-cover>p:last-child{max-width:30rem;font-size:clamp(1rem,1.7vw,1.35rem);line-height:1.55}
.dossier-hero{margin:clamp(3rem,7vw,7rem) 0 0}
.dossier-hero img{display:block;width:100%;max-height:78vh;object-fit:contain;background:#e6ded1}
.case-dossier figcaption{margin-top:.6rem;font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.72}
.dossier-context{display:grid;grid-template-columns:.35fr 1.1fr;gap:.75rem 2rem;max-width:760px;margin:clamp(3rem,7vw,7rem) auto;font-size:1.05rem;line-height:1.65}
.dossier-context p{margin:0 0 .7rem}
.dossier-publication{width:min(840px,100%);margin:0 auto}
.dossier-publication img{display:block;width:100%;height:auto}
.dossier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1.5rem,4vw,4rem);margin-top:clamp(3rem,7vw,7rem)}
.dossier-grid figure{margin:0}
.dossier-grid img{display:block;width:100%;height:100%;max-height:72vh;object-fit:cover;background:#e6ded1}
.dossier-grid .wide{grid-column:1/-1}
.dossier-grid-joint .wide img{height:auto;max-height:none;object-fit:contain}
.dossier-clea-intro{display:grid;grid-template-columns:minmax(250px,.7fr) 1.2fr;gap:clamp(2rem,7vw,7rem);align-items:center;margin-top:clamp(3rem,7vw,7rem)}
.dossier-clea-intro figure{margin:0}
.dossier-clea-intro img{display:block;width:100%;height:auto}
.dossier-clea-intro .dossier-context{display:block;margin:0;max-width:34rem}
.dossier-grid-clea{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.dossier-grid-clea figure:nth-child(3n+2){margin-top:4rem}
.dossier-grid-clea img{aspect-ratio:4/5;max-height:none;object-fit:cover}

@media (max-width:800px){
  .site-header .wordmark img{width:21px;height:21px}
  .numbered-section .section-number{font-size:5.4rem}
  .formats .section-intro{margin-bottom:1.25rem}
  .fork-visual{width:100%;height:112px;margin:0 auto -1px}
  .fork-visual img{transform:translateY(14px)}
  .audience figure{aspect-ratio:5/4}
  .proof{grid-template-columns:3.2rem 1fr;gap:1rem 1.25rem}
  .proof-single{grid-column:2;aspect-ratio:4/3}
  .dossier-inner{width:min(100% - 1.5rem,1180px);padding-top:5.5rem}
  .dossier-close{top:.75rem;right:.75rem}
  .dossier-cover{grid-template-columns:1fr;gap:1rem}
  .dossier-cover h2{font-size:clamp(3.2rem,16vw,5.6rem)}
  .dossier-context{grid-template-columns:1fr;gap:.15rem}
  .dossier-context .dossier-label{margin-top:1.2rem}
  .dossier-grid{grid-template-columns:1fr}
  .dossier-grid .wide{grid-column:auto}
  .dossier-clea-intro{grid-template-columns:1fr}
  .dossier-clea-intro figure{max-width:430px}
  .dossier-grid-clea{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .dossier-grid-clea figure:nth-child(3n+2){margin-top:0}
  .dossier-grid-clea figure:nth-child(even){margin-top:2rem}
}

/* PATCH 05 - panneau légal sobre, sans données non validées. */
.legal-dossier{background:#fff;color:var(--ink)}
.legal-inner{width:min(1180px,100%);margin:0 auto;padding:0 var(--pad) clamp(7rem,12vw,12rem)}
.legal-cover{min-height:72svh;display:flex;flex-direction:column;justify-content:flex-end;padding:clamp(7rem,14vw,12rem) 0 clamp(5rem,9vw,8rem);border-bottom:1px solid var(--rule)}
.legal-cover>p:first-child{margin:0 0 1.5rem;color:var(--accent);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.16em}
.legal-cover h2{max-width:9ch;margin:0;font:500 clamp(4.5rem,10vw,9rem)/.78 "Spectral",serif;letter-spacing:-.055em}
.legal-cover>p:last-child{max-width:500px;margin:2.5rem 0 0;color:#625f57;font-size:.92rem;line-height:1.65}
.legal-sections{border-bottom:1px solid var(--rule)}
.legal-section{display:grid;grid-template-columns:minmax(54px,.2fr) minmax(0,1fr);gap:clamp(1.5rem,5vw,6rem);padding:clamp(3rem,7vw,6.5rem) 0;border-top:1px solid var(--rule)}
.legal-section:first-child{border-top:0}
.legal-number{margin:.45rem 0 0;color:var(--accent);font:500 clamp(1.6rem,3vw,2.7rem)/1 "Spectral",serif}
.legal-section h3{margin:0 0 2rem;font:500 clamp(2.3rem,5vw,5.2rem)/.98 "Spectral",serif;letter-spacing:-.035em}
.legal-section p,.legal-section li,.legal-section dd{max-width:760px;font-size:clamp(.9rem,.25vw + .85rem,1.05rem);line-height:1.75}
.legal-section p{margin:0 0 1.15rem}
.legal-section ul{margin:0 0 1.4rem;padding-left:1.2rem}
.legal-section dl{max-width:760px;margin:0}
.legal-section dl>div{display:grid;grid-template-columns:minmax(170px,.65fr) minmax(0,1fr);gap:1.5rem;padding:1rem 0;border-top:1px solid var(--rule)}
.legal-section dt{color:#625f57;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}
.legal-section dd{margin:0}
.legal-link{border-bottom:1px solid;color:var(--accent);font-weight:600}
.legal-credit p{font-family:"Spectral",serif;font-size:clamp(1.7rem,3vw,3rem)}
.footer-link{padding:0;border:0;border-bottom:1px solid transparent;background:transparent;color:inherit;font:inherit;cursor:url("navet-cursor.png") 5 3,pointer}
.footer-link:hover,.footer-link:focus-visible{border-color:currentColor}

@media (max-width:620px){
  .legal-cover{min-height:62svh}
  .legal-cover h2{font-size:clamp(3.6rem,18vw,5rem)}
  .legal-section{grid-template-columns:1fr;gap:1rem}
  .legal-section h3{font-size:clamp(2.2rem,11vw,3.6rem)}
  .legal-section dl>div{grid-template-columns:1fr;gap:.35rem}
}

@media (prefers-reduced-motion:reduce){.case-dossier,.audience figure img{transition:none}}

/* PATCH 03 - mouvement, formation et portfolio éditorial. */
.motion-section{padding-bottom:clamp(6rem,10vw,10rem)}
.motion-showcase{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:clamp(1.25rem,4vw,4rem);align-items:start}
.motion-showcase figure{margin:0}
.motion-player{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;background:#151712}
.motion-player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.motion-main{overflow:hidden}
.motion-showcase figcaption,.motion-side>p{display:grid;grid-template-columns:2.2rem 1fr;gap:.3rem .85rem;margin:.85rem 0 0}
.motion-showcase figcaption span,.motion-side>p span{color:var(--accent);font-size:.68rem;letter-spacing:.12em}
.motion-showcase figcaption strong,.motion-side>p strong{font:600 clamp(1.2rem,2vw,1.75rem)/1.12 "Spectral",serif}
.motion-showcase figcaption em,.motion-side>p em{grid-column:2;font-size:.68rem;font-style:normal;line-height:1.45;text-transform:uppercase;letter-spacing:.09em;opacity:.7}
.motion-side{display:grid;gap:clamp(2rem,4vw,3.5rem)}
.motion-side figure{overflow:hidden}
.motion-side>p{margin-top:clamp(2rem,5vw,4.5rem);padding-top:1.2rem;border-top:1px solid var(--green)}
.motion-proof{width:max-content;max-width:100%;margin:clamp(2rem,4vw,3.5rem) 0 0 auto;padding:.65rem 0;border-bottom:1px solid var(--accent);font-size:.72rem;letter-spacing:.04em;color:var(--green)}
.motion-footer{display:flex;align-items:flex-end;justify-content:flex-end;gap:clamp(1.5rem,4vw,4rem);flex-wrap:wrap}
.motion-channel{display:inline-flex;align-items:center;gap:.45rem;margin-top:clamp(2rem,4vw,3.5rem);padding:.65rem 0;border-bottom:1px solid var(--green);font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--green)}
.motion-channel span{color:var(--accent);font-size:.95rem}

.training{display:block;background:#f2f1ed}
.training .section-intro{max-width:1050px;margin-bottom:clamp(3rem,6vw,5.5rem)}
.training .section-intro h2{max-width:16ch}
.training-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(2.5rem,8vw,9rem);align-items:start;padding-top:2rem;border-top:1px solid var(--green)}
.training-for{max-width:27rem;margin:0;font:500 clamp(1.45rem,2.6vw,2.5rem)/1.2 "Spectral",serif}
.training-for strong{color:var(--accent);font-weight:500}
.training blockquote{max-width:760px;font-size:clamp(1.6rem,3vw,3.1rem)}
.training .actions{margin-top:clamp(2.5rem,5vw,4rem)}

.portfolio{padding-top:clamp(7rem,12vw,12rem);overflow:hidden}
.portfolio .section-intro{max-width:930px}
.portfolio .section-intro>.index{margin-bottom:1rem;color:var(--accent)}
.portfolio .section-intro p:last-child{max-width:38rem}
.portfolio-composition{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.1rem,2.4vw,2.5rem);align-items:start}
.portfolio-category{display:block;padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer}
.portfolio-category figure{margin:0 0 1rem;overflow:hidden;background:#e7dfd3}
.portfolio-category img{width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .65s ease}
.portfolio-category:hover img,.portfolio-category:focus-visible img{transform:scale(1.02);filter:saturate(1.04)}
.portfolio-category:focus-visible{outline:1px solid var(--accent);outline-offset:7px}
.portfolio-category .category-number{color:var(--accent);font-size:.68rem;letter-spacing:.12em}
.portfolio-category h3{margin:.35rem 0 .55rem;font:500 clamp(2rem,4vw,4.5rem)/.94 "Spectral",serif;letter-spacing:-.04em}
.portfolio-category p{max-width:34rem;margin:.5rem 0 0;font-size:.82rem;line-height:1.6}
.category-action{display:inline-block;margin-top:1.05rem;padding-bottom:.25rem;border-bottom:1px solid;font-size:.65rem;text-transform:uppercase;letter-spacing:.11em;color:var(--green)}
.category-gastronomie{grid-column:1/span 7}
.category-gastronomie figure{aspect-ratio:16/10}
.category-recette{grid-column:9/span 4;margin-top:clamp(5rem,11vw,10rem)}
.category-recette figure{aspect-ratio:3/4}
.category-produit{grid-column:2/span 3;margin-top:clamp(3rem,8vw,7rem)}
.category-produit figure{aspect-ratio:4/5}
.category-produit h3{font-size:clamp(1.8rem,3vw,3.25rem)}
.category-editorial{grid-column:6/span 7;margin-top:clamp(8rem,14vw,13rem)}
.category-editorial figure{aspect-ratio:16/9}
.category-reportage{grid-column:1/span 11;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:clamp(2rem,6vw,7rem);align-items:end;margin-top:clamp(7rem,13vw,12rem)}
.category-reportage figure{margin:0;aspect-ratio:16/10}
.category-reportage h3{max-width:10ch}
.category-reportage-copy{padding-bottom:clamp(1rem,4vw,4rem)}

.portfolio-dossier .dossier-cover h2{font-size:clamp(3.7rem,9vw,8.5rem)}
.portfolio-dossier-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:clamp(1.3rem,3vw,3rem);align-items:start;margin-top:clamp(4rem,8vw,8rem)}
.portfolio-dossier-grid figure{margin:0;overflow:hidden;background:#e6ded1}
.portfolio-dossier-grid img{width:100%;height:100%;object-fit:cover}
.portfolio-dossier-grid .portfolio-dossier-lead{grid-column:1/span 8}
.portfolio-dossier-grid .portfolio-dossier-lead img{aspect-ratio:16/10}
.portfolio-dossier-grid figure:nth-child(2){grid-column:10/span 3;margin-top:clamp(3rem,8vw,7rem)}
.portfolio-dossier-grid figure:nth-child(2) img{aspect-ratio:3/4}
.portfolio-dossier-grid figure:nth-child(3){grid-column:2/span 4;margin-top:clamp(3rem,7vw,6rem)}
.portfolio-dossier-grid figure:nth-child(3) img{aspect-ratio:4/5}
.portfolio-dossier-grid figure:nth-child(4){grid-column:7/span 6;margin-top:clamp(7rem,12vw,11rem)}
.portfolio-dossier-grid figure:nth-child(4) img{aspect-ratio:4/3}
.portfolio-dossier-grid figure:nth-child(5){grid-column:2/span 7;margin-top:clamp(3rem,7vw,6rem)}
.portfolio-dossier-grid figure:nth-child(5) img{aspect-ratio:4/3}

/* Portfolio 02 - composition éditoriale complète, sans recadrage des originaux. */
.portfolio-dossier-grid--recette{grid-auto-flow:row}
.portfolio-dossier-grid--recette figure{margin-top:0}
.portfolio-dossier-grid--recette img,
.portfolio-dossier-grid--recette .portfolio-dossier-lead img,
.portfolio-dossier-grid--recette figure:nth-child(n) img{height:auto;aspect-ratio:auto;object-fit:contain}
.portfolio-dossier-grid--recette .portfolio-dossier-lead{grid-column:1/span 8}
.portfolio-dossier-grid--recette figure:nth-child(2){grid-column:10/span 3;margin-top:clamp(4rem,9vw,8rem)}
.portfolio-dossier-grid--recette figure:nth-child(3){grid-column:2/span 5;margin-top:clamp(2rem,5vw,4rem)}
.portfolio-dossier-grid--recette figure:nth-child(4){grid-column:8/span 5;margin-top:clamp(6rem,10vw,9rem)}
.portfolio-dossier-grid--recette figure:nth-child(5){grid-column:1/span 5;margin-top:clamp(2rem,5vw,4rem)}
.portfolio-dossier-grid--recette figure:nth-child(6){grid-column:7/span 6;margin-top:clamp(6rem,11vw,10rem)}
.portfolio-dossier-grid--recette figure:nth-child(7){grid-column:2/span 4;margin-top:clamp(2rem,4vw,4rem)}
.portfolio-dossier-grid--recette figure:nth-child(8){grid-column:7/span 6;margin-top:clamp(5rem,9vw,8rem)}
.portfolio-dossier-grid--recette figure:nth-child(9){grid-column:1/span 7;margin-top:clamp(2rem,5vw,4rem)}
.portfolio-dossier-grid--recette figure:nth-child(10){grid-column:9/span 4;margin-top:clamp(6rem,10vw,9rem)}
.portfolio-dossier-grid--recette figure:nth-child(11){grid-column:2/span 3;margin-top:clamp(2rem,5vw,4rem)}
.portfolio-dossier-grid--recette figure:nth-child(12){grid-column:6/span 7;margin-top:clamp(6rem,10vw,9rem)}
.portfolio-dossier-grid--recette figure:nth-child(13){grid-column:1/span 5;margin-top:clamp(3rem,6vw,5rem)}
.portfolio-dossier-grid--recette figure:nth-child(14){grid-column:7/span 4;margin-top:clamp(7rem,12vw,11rem)}
.portfolio-dossier-grid--recette figure:nth-child(15){grid-column:3/span 8;margin-top:clamp(4rem,8vw,7rem)}

@media (max-width:800px){
  .motion-showcase{grid-template-columns:1fr}
  .motion-side{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;align-items:start}
  .motion-side>p{margin:0}
  .motion-proof{width:auto;margin-left:0}
  .motion-footer{justify-content:flex-start}
  .training-layout{grid-template-columns:1fr}
  .portfolio-composition{gap:3.5rem 1rem}
  .category-gastronomie{grid-column:1/-1}
  .category-recette{grid-column:4/-1;margin-top:1rem}
  .category-produit{grid-column:1/span 7;margin-top:0}
  .category-editorial{grid-column:2/-1;margin-top:1rem}
  .category-reportage{grid-column:1/-1;grid-template-columns:1fr;margin-top:2rem}
  .category-reportage figure{aspect-ratio:4/3}
  .portfolio-dossier-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
  .portfolio-dossier-grid .portfolio-dossier-lead{grid-column:1/-1}
  .portfolio-dossier-grid figure:nth-child(2),.portfolio-dossier-grid figure:nth-child(3),.portfolio-dossier-grid figure:nth-child(4),.portfolio-dossier-grid figure:nth-child(5){grid-column:auto;margin-top:0}
  .portfolio-dossier-grid figure:nth-child(5){grid-column:1/-1}
  .portfolio-dossier-grid--recette figure:nth-child(n){grid-column:auto;margin-top:0}
  .portfolio-dossier-grid--recette .portfolio-dossier-lead,.portfolio-dossier-grid--recette figure:nth-child(8),.portfolio-dossier-grid--recette figure:nth-child(13),.portfolio-dossier-grid--recette figure:nth-child(15){grid-column:1/-1}
}

@media (max-width:520px){
  .motion-side{grid-template-columns:1fr}
  .motion-side figure{width:100%;margin-left:0}
  .portfolio{padding-inline:1rem}
  .portfolio-composition{display:block}
  .portfolio-category{margin:0 0 4.5rem}
  .category-recette{width:82%;margin-left:auto}
  .category-produit{width:72%}
  .category-editorial{width:92%;margin-left:auto}
  .category-reportage{width:100%}
  .portfolio-dossier-grid{grid-template-columns:1fr}
  .portfolio-dossier-grid .portfolio-dossier-lead,.portfolio-dossier-grid figure:nth-child(2),.portfolio-dossier-grid figure:nth-child(3),.portfolio-dossier-grid figure:nth-child(4),.portfolio-dossier-grid figure:nth-child(5){grid-column:1}
  .portfolio-dossier-grid img,.portfolio-dossier-grid .portfolio-dossier-lead img,.portfolio-dossier-grid figure:nth-child(2) img,.portfolio-dossier-grid figure:nth-child(3) img,.portfolio-dossier-grid figure:nth-child(4) img,.portfolio-dossier-grid figure:nth-child(5) img{height:auto;aspect-ratio:auto}
  .portfolio-dossier-grid--recette figure:nth-child(n),.portfolio-dossier-grid--recette .portfolio-dossier-lead{grid-column:1}
}

@media (prefers-reduced-motion:reduce){.motion-showcase img,.portfolio-category img{transition:none}}

/* PATCH 02 - hiérarchie éditoriale, note tarifaire et cas clients. */
.site-header{background:#fff;border-bottom-color:rgba(42,63,54,.16)}
.site-header .wordmark{font-family:"Spectral",serif;font-size:1.32rem;font-weight:600;letter-spacing:.04em}
.site-header .wordmark img{width:34px;height:34px;margin-left:.05rem}
.site-header nav{gap:clamp(1.1rem,2.6vw,2.4rem)}
.site-header nav a{font-size:.72rem;font-weight:500;letter-spacing:.09em;text-transform:uppercase}

.numbered-section .section-intro{max-width:980px;padding-top:0}
.numbered-section .section-intro>.index{margin:0 0 1rem;color:var(--accent);font-weight:600}
.numbered-section .section-intro>h2{margin-bottom:0}
.numbered-section .section-intro>p:last-child:not(.index){max-width:44rem;margin:1.25rem 0 0;font-size:1rem;line-height:1.7}
.numbered-section .section-intro::after{width:4.25rem;margin-top:2rem}
.numbered-section .section-number{display:none}

.audiences{padding-top:clamp(5rem,9vw,8rem)}
.audience-grid{gap:clamp(1rem,2.6vw,2.2rem)}
.audience{padding-top:0}
.audience figure{aspect-ratio:4/5;margin-bottom:1.2rem}
.audience h3{margin-top:.45rem}
.audience p{line-height:1.55}

.formats .section-intro{margin-bottom:clamp(1.8rem,4vw,3.5rem)}
.fork-visual{width:min(760px,92%);height:clamp(100px,14vw,150px);margin:0 auto -1px}
.fork-visual img{object-fit:cover;object-position:center 52%;transform:translateY(26px)}
.price-ticket{position:relative;width:min(720px,100% - 2rem);margin:0 auto;background:#fffdf8;border:1px solid rgba(42,63,54,.72);color:var(--green);box-shadow:0 22px 60px rgba(42,63,54,.07)}
.price-ticket::before,.price-ticket::after{content:"";position:absolute;left:11%;right:11%;height:1px;background:rgba(42,63,54,.2)}
.price-ticket::before{top:6px}.price-ticket::after{bottom:6px}
.ticket-head{display:flex;flex-direction:column;align-items:center;padding:2.6rem 2rem 2rem;text-align:center;border-bottom:1px dashed rgba(42,63,54,.48)}
.ticket-head span,.ticket-kicker{text-transform:uppercase;letter-spacing:.18em;font-size:.65rem;font-weight:600}
.ticket-head strong{margin:.2rem 0 .45rem;font:600 clamp(2.8rem,7vw,5rem)/.9 "Spectral",serif;letter-spacing:-.05em}
.ticket-head small{font-size:.73rem;letter-spacing:.04em}
.ticket-group,.ticket-special,.ticket-notes{padding:1.9rem clamp(1.25rem,5vw,3.4rem)}
.ticket-kicker{margin:0 0 1.3rem;color:var(--accent)}
.ticket-row{display:grid;grid-template-columns:1fr auto;gap:1.25rem;padding:1.35rem 0;border-top:1px dotted rgba(42,63,54,.42)}
.ticket-row:first-of-type{border-top:0}
.ticket-row div>span{float:left;margin:.4rem .7rem 0 0;color:var(--accent);font-size:.67rem;font-weight:600}
.ticket-row h3{margin:0;font:600 1.35rem/1.1 "Spectral",serif}
.ticket-row p{margin:.4rem 0 .15rem;font-size:.79rem;line-height:1.5}
.ticket-row small{display:block;max-width:35rem;font-size:.72rem;line-height:1.5;opacity:.78}
.ticket-row>strong{align-self:start;padding-top:.2rem;white-space:nowrap;font:600 1rem/1.2 "Spectral",serif}
.ticket-row.tasting{margin-top:.5rem;border-top:1px solid var(--green)}
.ticket-row.tasting>strong,.ticket-special-head>strong{text-transform:uppercase;color:var(--accent);font-size:.75rem;letter-spacing:.08em}
.ticket-special{border-top:1px dashed rgba(42,63,54,.48);border-bottom:1px dashed rgba(42,63,54,.48)}
.ticket-special-head{display:grid;grid-template-columns:1fr auto;gap:1.5rem;align-items:start}
.ticket-special h3{max-width:23ch;margin:0;font:600 1.6rem/1.15 "Spectral",serif}
.ticket-special>p:last-child{margin:1rem 0 0;font-size:.8rem;line-height:1.65}
.ticket-notes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem)}
.ticket-notes>div+div{padding-left:clamp(1.5rem,4vw,3rem);border-left:1px dotted rgba(42,63,54,.42)}
.ticket-notes p:last-child{margin:0;font-size:.78rem;line-height:1.7}
.ticket-foot{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem 2rem 2.7rem;border-top:1px solid rgba(42,63,54,.65)}
.ticket-foot img{width:28px;height:28px;object-fit:contain}
.ticket-foot p{margin:0;font:500 1.15rem/1.2 "Spectral",serif;font-style:italic}

.proofs .section-intro,.motion-section .section-intro{margin-bottom:clamp(3rem,6vw,5rem)}
.proof-list{margin-top:0}
.proof{padding-block:clamp(2rem,4vw,3.5rem)}
.proof-copy h3{font-size:clamp(1.7rem,3vw,2.6rem)}
.proof-single{aspect-ratio:5/4}

.motion-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.5vw,2.2rem);border:0}
.motion-list li{display:grid;grid-template-columns:auto 1fr;gap:.35rem .85rem;align-items:baseline;padding:0;border:0}
.motion-list figure{grid-column:1/-1;width:100%;margin:0 0 .8rem;aspect-ratio:4/3;overflow:hidden;background:#e8e0d5}
.motion-list figure img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.motion-list li:hover figure img{transform:scale(1.02)}
.motion-list figure.motion-placeholder{display:grid;place-items:center;border:1px solid rgba(42,63,54,.28);background:transparent}
.motion-list figure.motion-placeholder span{font-size:.67rem;text-transform:uppercase;letter-spacing:.12em;color:var(--accent)}
.motion-list li>span{color:var(--accent);font-size:.7rem}
.motion-list li>strong{font:600 1.35rem/1.15 "Spectral",serif}
.motion-list li>em{grid-column:2;font-size:.72rem;line-height:1.4}
.global-credit{margin:clamp(2rem,5vw,4rem) 0 0;text-align:right;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;opacity:.62}

.case-movement{padding:clamp(4rem,8vw,8rem) 0;border-bottom:1px solid rgba(42,63,54,.35)}
.movement-heading{display:grid;grid-template-columns:.22fr 1fr 1fr;gap:clamp(1.5rem,5vw,5rem);align-items:start}
.movement-heading>p:first-child{color:var(--accent);font:500 3rem/1 "Spectral",serif}
.movement-heading h3{margin:0;font:600 clamp(2.3rem,5vw,4.5rem)/.92 "Spectral",serif;letter-spacing:-.04em}
.movement-heading h3 em{color:var(--accent);font-weight:500}
.movement-heading>p:last-child{margin:0;font-size:1.05rem;line-height:1.65}
.dossier-grid-satoriz{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.dossier-grid-satoriz figure:not(.wide) img{aspect-ratio:1/1;max-height:none;object-fit:cover}
.dossier-grid-satoriz .wide{width:min(760px,100%);margin-inline:auto}
.dossier-grid-satoriz .wide img{height:auto;max-height:none;object-fit:contain}
.evidence-note{margin:clamp(2.5rem,5vw,4rem) 0 0 clamp(20%,2rem);padding:1.4rem 1.6rem;border-left:1px solid var(--accent);max-width:34rem}
.evidence-note p{margin:0;font-size:.8rem;line-height:1.6;font-style:italic}
.project-chain{display:grid;grid-template-columns:repeat(7,1fr);gap:0;margin:clamp(3rem,6vw,5rem) 0;padding:0;list-style:none;border-top:1px solid var(--green);border-bottom:1px solid var(--green)}
.project-chain li{position:relative;padding:1.2rem .75rem;text-align:center;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em}
.project-chain li+li{border-left:1px dotted rgba(42,63,54,.4)}
.project-chain li:not(:last-child)::after{content:"→";position:absolute;right:-.4rem;color:var(--accent);background:#f3eee5;padding:0 .1rem}

img{-webkit-user-drag:none;user-select:none}

@media (max-width:800px){
  .site-header .wordmark img{width:29px;height:29px}
  .numbered-section .section-intro>.index{font-size:.66rem}
  .audience-grid{gap:2.3rem}
  .audience figure{aspect-ratio:5/4}
  .fork-visual{width:calc(100% - 1rem);height:96px}
  .fork-visual img{transform:translateY(17px)}
  .price-ticket{width:100%}
  .ticket-row{grid-template-columns:1fr;gap:.65rem}
  .ticket-row>strong{padding-left:1.5rem}
  .ticket-special-head{grid-template-columns:1fr}
  .ticket-notes{grid-template-columns:1fr}
  .ticket-notes>div+div{padding:1.5rem 0 0;border-top:1px dotted rgba(42,63,54,.42);border-left:0}
  .proof{grid-template-columns:3rem 1fr}
  .proof-single{grid-column:1/-1;aspect-ratio:4/3}
  .motion-list{grid-template-columns:1fr}
  .movement-heading{grid-template-columns:3rem 1fr}
  .movement-heading>p:last-child{grid-column:2}
  .dossier-grid-satoriz{grid-template-columns:1fr}
  .project-chain{grid-template-columns:1fr}
  .project-chain li+li{border-top:1px dotted rgba(42,63,54,.4);border-left:0}
  .project-chain li:not(:last-child)::after{content:"↓";right:auto;bottom:-.65rem;left:50%;padding:0 .3rem}
  .evidence-note{margin-left:3rem}
}

/* LA NOTE - reçu de restaurant légèrement manipulé, sans objet décoratif. */
.formats{background:#fffdf9}
.ticket-shell{
  position:relative;
  isolation:isolate;
  width:min(690px,calc(100% - 2rem));
  margin:0 auto;
  transform:rotate(-.12deg);
}
.ticket-shell::before{
  content:"";
  position:absolute;
  z-index:0;
  inset:1.2rem .35rem -.55rem .55rem;
  background:
    radial-gradient(ellipse at 18% 46%,rgba(42,39,33,.15),transparent 56%),
    radial-gradient(ellipse at 72% 32%,rgba(42,39,33,.08),transparent 48%),
    radial-gradient(ellipse at 84% 78%,rgba(42,39,33,.13),transparent 44%);
  filter:blur(15px);
  transform:translateY(11px) skewX(-.18deg);
  opacity:.78;
}
.price-ticket{
  position:relative;
  z-index:1;
  width:100%;
  margin:0;
  padding:clamp(2rem,5vw,3.5rem) clamp(1.35rem,5vw,3.4rem) clamp(2.5rem,6vw,4rem);
  overflow:hidden;
  border:0;
  border-radius:0;
  background-color:#f8f4eb;
  background-image:
    radial-gradient(ellipse at 8% 9%,rgba(255,255,255,.64),transparent 24%),
    radial-gradient(ellipse at 92% 85%,rgba(88,74,59,.042),transparent 23%),
    radial-gradient(ellipse at 28% 67%,rgba(255,255,255,.39),transparent 27%),
    radial-gradient(ellipse at 76% 19%,rgba(88,74,59,.026),transparent 18%),
    radial-gradient(circle at 17% 13%,rgba(72,64,52,.042) 0 .8px,transparent 1.25px),
    radial-gradient(circle at 73% 61%,rgba(72,64,52,.03) 0 .75px,transparent 1.35px),
    radial-gradient(circle at 41% 84%,rgba(72,64,52,.026) 0 .65px,transparent 1.2px);
  background-size:100% 100%,100% 100%,100% 100%,100% 100%,13px 17px,19px 23px,17px 21px;
  color:#242522;
  box-shadow:none;
  font-family:"Courier New",Courier,monospace;
  clip-path:polygon(0 8px,1.8% 2px,3.6% 9px,5.2% 4px,6.8% 11px,8.7% 1px,10.5% 7px,12.4% 3px,14.2% 10px,16.6% 5px,18.2% 9px,20.4% 0,22.2% 8px,24.8% 4px,26.3% 10px,28.8% 3px,31.1% 9px,33.4% 2px,35.9% 7px,38.1% 5px,40.3% 10px,42.7% 1px,45.1% 8px,47.8% 4px,50% 9px,52.4% 3px,54.5% 10px,56.8% 2px,59.2% 8px,61.7% 5px,64.1% 11px,66.3% 1px,68.8% 7px,71.4% 4px,73.6% 9px,76.1% 3px,78.5% 10px,80.8% 2px,83.3% 8px,85.9% 5px,88.2% 10px,90.5% 1px,92.7% 8px,95.1% 4px,97.4% 9px,100% 3px,100% calc(100% - 7px),97.8% calc(100% - 1px),95.3% calc(100% - 9px),93.1% calc(100% - 4px),90.6% 100%,88.4% calc(100% - 8px),85.7% calc(100% - 3px),83.5% calc(100% - 10px),80.9% calc(100% - 2px),78.6% calc(100% - 7px),76.2% calc(100% - 4px),73.8% calc(100% - 10px),71.2% calc(100% - 1px),68.9% calc(100% - 8px),66.4% calc(100% - 3px),63.9% calc(100% - 9px),61.5% calc(100% - 5px),59.1% calc(100% - 11px),56.8% calc(100% - 2px),54.3% calc(100% - 8px),51.9% calc(100% - 4px),49.6% calc(100% - 10px),47.1% calc(100% - 1px),44.7% calc(100% - 7px),42.2% calc(100% - 3px),39.8% calc(100% - 9px),37.4% calc(100% - 5px),34.9% calc(100% - 10px),32.5% calc(100% - 2px),30% calc(100% - 8px),27.7% calc(100% - 4px),25.1% calc(100% - 9px),22.8% calc(100% - 1px),20.4% calc(100% - 7px),18% calc(100% - 3px),15.5% calc(100% - 10px),13.1% calc(100% - 4px),10.6% calc(100% - 8px),8.2% calc(100% - 2px),5.7% calc(100% - 9px),3.1% calc(100% - 4px),0 calc(100% - 8px));
}
.price-ticket::before,.price-ticket::after{content:"";display:block;position:absolute;inset:0;pointer-events:none}
.price-ticket::before{
  z-index:0;
  opacity:.56;
  background:
    linear-gradient(rgba(248,244,235,.08),rgba(248,244,235,.08)),
    url("ticket-paper-texture-v2.jpg") center/cover no-repeat,
    repeating-linear-gradient(1.4deg,rgba(63,58,49,.012) 0 .7px,transparent .8px 5px);
  background-blend-mode:normal,multiply,normal;
}
.price-ticket::after{
  z-index:0;
  opacity:.48;
  background:
    radial-gradient(ellipse 4.2% 57% at 31% 47%,rgba(92,81,67,.022),transparent 76%),
    radial-gradient(ellipse 3.7% 51% at 32.2% 49%,rgba(255,255,255,.09),transparent 78%),
    radial-gradient(ellipse 4.8% 43% at 72% 58%,rgba(92,81,67,.018),transparent 80%),
    radial-gradient(ellipse 20% 3% at 17% 22%,rgba(92,81,67,.018),transparent 74%),
    radial-gradient(ellipse 24% 2.6% at 79% 76%,rgba(255,255,255,.09),transparent 76%);
}
.price-ticket>*{position:relative;z-index:1}
.fork-visual{display:none!important}
.ticket-head{display:flex;flex-direction:column;align-items:center;padding:0 0 1.45rem;text-align:center;border-bottom:1px dashed rgba(36,37,34,.72)}
.ticket-head p{margin:0}
.ticket-brand{font-weight:700;font-size:clamp(1rem,2vw,1.25rem);text-transform:uppercase;letter-spacing:.24em}
.ticket-head strong{margin:.6rem 0 .3rem;font:600 clamp(4rem,8vw,6rem)/.92 "Spectral",serif;letter-spacing:-.055em}
.ticket-price-label{font-size:.73rem;font-weight:700;text-transform:uppercase;letter-spacing:.18em}
.ticket-number{margin-top:.32rem!important;font-size:clamp(1rem,2vw,1.25rem);font-weight:700;letter-spacing:.03em}
.ticket-group,.ticket-special,.ticket-notes{padding:1.15rem 0}
.ticket-columns{display:grid;grid-template-columns:3rem 1fr auto;gap:.6rem;padding:.3rem 0 .75rem;border-bottom:1px dashed rgba(36,37,34,.72);font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em}
.ticket-columns span:last-child{text-align:right}
.ticket-row{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1.05rem 0;border-top:0;border-bottom:1px dashed rgba(36,37,34,.72)}
.ticket-row>div{display:grid;grid-template-columns:3rem minmax(0,1fr);column-gap:.6rem;align-items:start}
.ticket-row div>span{grid-column:1;grid-row:1/span 3;float:none;margin:.1rem 0 0;color:#bb3d78;font-size:.9rem;font-weight:700}
.ticket-row h3{grid-column:2;margin:0;font:700 1.03rem/1.2 "Courier New",Courier,monospace;letter-spacing:-.025em}
.ticket-row p,.ticket-row small{grid-column:2}
.ticket-row p{margin:.25rem 0 0;font-size:.75rem;line-height:1.4}
.ticket-row small{margin-top:.16rem;font-size:.7rem;line-height:1.42;opacity:.92}
.ticket-row>strong{align-self:start;padding:.1rem 0 0;white-space:nowrap;font:700 .9rem/1.2 "Courier New",Courier,monospace}
.ticket-row.tasting{margin-top:0;border-top:0}
.ticket-row.tasting>strong,.ticket-special-head>strong{color:#bb3d78;font:700 .82rem/1.2 "Courier New",Courier,monospace;letter-spacing:0}
.ticket-kicker{margin:0 0 .65rem;color:#242522;font:700 .7rem/1.35 "Courier New",Courier,monospace;text-transform:uppercase;letter-spacing:.13em}
.ticket-special{border-top:0;border-bottom:1px dashed rgba(36,37,34,.72)}
.ticket-special-head{display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:start}
.ticket-special h3{margin:0;font:700 .9rem/1.35 "Courier New",Courier,monospace}
.ticket-special-copy{margin-top:.65rem}
.ticket-special-copy p{margin:0;font-size:.7rem;line-height:1.5}
.ticket-special-copy p+p{margin-top:.15rem}
.ticket-notes{display:block}
.ticket-notes>div{padding:.15rem 0 1rem}
.ticket-notes>div+div{padding:1rem 0 0;border-top:1px dashed rgba(36,37,34,.72);border-left:0}
.ticket-notes>div>p:not(.ticket-kicker){margin:0;font-size:.7rem;line-height:1.5}
.ticket-notes>div>p:not(.ticket-kicker)+p{margin-top:.35rem}
.ticket-notes .ticket-emphasis{font-weight:700;font-size:.73rem!important}
.price-ticket .ticket-foot{display:flex;width:auto;grid-template-columns:none;flex-direction:column;align-items:center;justify-content:center;gap:.45rem;padding:1.5rem 0 0;border-top:1px dashed rgba(36,37,34,.72);background:transparent;color:#242522;text-align:center}
.ticket-foot p{order:-2;margin:0 0 .65rem;font:italic 500 clamp(1.35rem,3vw,1.85rem)/1.1 "Spectral",serif;letter-spacing:-.02em}
.ticket-foot img{order:-1;width:58px;height:auto;max-height:82px;object-fit:contain}
.ticket-foot strong{font-size:.72rem;text-transform:uppercase;letter-spacing:.22em}
.ticket-foot>span{font-size:.9rem;line-height:.75}
.ticket-foot small{font-size:.57rem;font-weight:700;line-height:1.45;text-transform:uppercase;letter-spacing:.16em}
.ticket-foot .ticket-base{width:100%;margin-top:.9rem;padding-top:.85rem;border-top:1px dotted rgba(36,37,34,.55);font-size:.61rem;font-weight:600;line-height:1.4;text-transform:none;letter-spacing:.01em;opacity:.78}
@media (max-width:800px){
  .ticket-shell{width:100%;transform:none}
  .ticket-shell::before{inset:1rem .25rem -.35rem .35rem;filter:blur(11px);opacity:.62}
  .price-ticket{width:100%;padding-inline:1.15rem}
  .ticket-row{grid-template-columns:1fr auto;gap:.55rem}
  .ticket-row>strong{padding-left:0;font-size:.75rem}
  .ticket-row>div,.ticket-columns{grid-template-columns:2.35rem minmax(0,1fr) auto}
  .ticket-special-head{grid-template-columns:1fr auto}
}

@media (max-width:430px){
  .ticket-head strong{font-size:3.5rem}
  .ticket-row{grid-template-columns:1fr}
  .ticket-row>strong{padding-left:2.95rem}
  .ticket-columns{grid-template-columns:2.35rem 1fr}
  .ticket-columns span:last-child{display:none}
  .ticket-special-head{grid-template-columns:1fr}
}

/* PATCH 04 - signature d’auteur, personne, contact et footer. */
.signature-project{
  width:100%;
  padding:0;
  border:0;
  color:inherit;
  background:transparent;
  text-align:left;
  font:inherit;
  cursor:url("navet-cursor.png") 5 3,pointer;
}
.signature-project .signature-image{display:block;overflow:hidden}
.signature-project .signature-image img{transition:transform .65s cubic-bezier(.2,.7,.2,1)}
.signature-project:hover .signature-image img{transform:scale(1.018)}
.signature-project .signature-copy{display:flex;flex-direction:column;align-items:flex-start}
.signature-project .signature-copy>strong{font:500 clamp(2.5rem,5vw,5.8rem)/.95 "Spectral",serif}
.signature-open{margin-top:1.8rem;padding-bottom:.25rem;border-bottom:1px solid;font-size:.68rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em}
.signature-open span{color:var(--accent)}
.author-dossier{background:#fbfaf7}
.author-dossier-cover{min-height:82svh}
.author-dossier-cover h2{max-width:12ch}
.author-dossier-single{padding:0 var(--pad) clamp(7rem,12vw,12rem)}
.author-dossier-single figure{width:min(1280px,100%);margin:0 auto}
.author-dossier-single img{width:100%;height:auto}
.author-dossier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,3rem);padding:0 var(--pad) clamp(7rem,12vw,12rem);align-items:start}
.author-dossier-grid figure{margin:0;overflow:hidden;background:#eee9df}
.author-dossier-grid figure.wide{grid-column:1/-1;width:min(1200px,100%);margin:0 auto}
.author-dossier-grid img{width:100%;height:auto}

.about{background:#fff}
.contact-actions{justify-content:center}
.contact-actions .button{min-width:10rem}
body>footer{background:#fff;color:var(--ink);border-top:1px solid var(--rule)}
body>footer .footer-main p{color:#625f57}
body>footer .footer-main .footer-name{color:var(--ink)}
body>footer .footer-main a,body>footer .footer-main summary{color:var(--ink)}
body>footer .footer-main details div{color:#625f57}
body>footer .footer-navet{width:52px;opacity:1;filter:none}

@media (max-width:800px){
  .author-dossier-grid{grid-template-columns:1fr}
  .author-dossier-grid figure.wide{grid-column:auto}
  .author-dossier-cover{min-height:68svh}
}

/* Portfolios : cadres égaux, images entières, sans bordure. */
.portfolio-dossier .portfolio-dossier-grid{
  width:min(1440px,100%);
  margin-inline:auto;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-flow:row;
  column-gap:clamp(2rem,5vw,5rem);
  row-gap:clamp(3rem,6vw,6rem);
}
.portfolio-dossier .portfolio-dossier-grid figure,
.portfolio-dossier .portfolio-dossier-grid .portfolio-dossier-lead,
.portfolio-dossier .portfolio-dossier-grid figure:nth-child(n){
  grid-column:auto;
  margin:0;
  aspect-ratio:1/1;
  overflow:hidden;
  border:0;
  background:transparent;
  box-shadow:none;
}
.portfolio-dossier .portfolio-dossier-grid img,
.portfolio-dossier .portfolio-dossier-grid .portfolio-dossier-lead img,
.portfolio-dossier .portfolio-dossier-grid figure:nth-child(n) img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  margin:auto;
  aspect-ratio:auto;
  object-fit:contain;
  object-position:center;
  border:0;
  background:transparent;
  box-shadow:none;
}
@media (max-width:520px){
  .portfolio-dossier .portfolio-dossier-grid{grid-template-columns:1fr;row-gap:2.5rem}
}

/* Portfolio 01 · Gastronomie - composition éditoriale dédiée */
#portfolio-gastronomie{
  --gastronomie-gap:clamp(1rem,2vw,1.75rem);
  overflow-x:hidden;
}
#portfolio-gastronomie .dossier-cover{
  position:relative;
  grid-template-columns:.55fr 1.4fr;
  min-height:clamp(17rem,28vw,24rem);
  padding-right:clamp(5rem,10vw,8rem);
}
#portfolio-gastronomie .dossier-cover .gastronomie-subtitle{
  position:absolute;
  top:50%;
  right:0;
  margin:0;
  color:var(--accent);
  font-family:"Spectral",Georgia,serif;
  font-size:clamp(3rem,6vw,6.25rem);
  font-weight:500;
  letter-spacing:-.06em;
  line-height:.82;
  text-transform:uppercase;
  white-space:nowrap;
  transform:translate(34%,-50%) rotate(-90deg);
  transform-origin:center;
}
#portfolio-gastronomie .gastronomie-gallery{
  display:grid;
  gap:var(--gastronomie-gap);
  margin-top:clamp(3rem,6vw,6rem);
}
#portfolio-gastronomie .gastronomie-row{
  display:grid;
  gap:var(--gastronomie-gap);
  align-items:start;
}
#portfolio-gastronomie .gastronomie-row--three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#portfolio-gastronomie .gastronomie-row--two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#portfolio-gastronomie .gastronomie-item{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
#portfolio-gastronomie .gastronomie-photo{
  width:100%;
  margin:0;
  padding:0;
  appearance:none;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  cursor:zoom-in;
}
#portfolio-gastronomie .gastronomie-item--wide .gastronomie-photo{
  display:block;
}
#portfolio-gastronomie .gastronomie-row .gastronomie-photo{
  display:flex;
  height:clamp(17rem,28vw,27rem);
  align-items:center;
  justify-content:center;
}
#portfolio-gastronomie .gastronomie-row--two .gastronomie-photo{
  height:clamp(20rem,36vw,35rem);
}
#portfolio-gastronomie .gastronomie-photo img{
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:100%;
  object-fit:contain;
  object-position:center;
  border:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}
#portfolio-gastronomie .gastronomie-item--wide .gastronomie-photo img{
  width:100%;
  max-height:none;
}
#portfolio-gastronomie .gastronomie-photo:focus-visible{
  outline:2px solid currentColor;
  outline-offset:5px;
}
#portfolio-gastronomie .gastronomie-item figcaption{
  margin:.55rem 0 0;
  color:rgba(27,23,18,.64);
  font-family:var(--sans);
  font-size:.72rem;
  font-weight:400;
  letter-spacing:.035em;
  line-height:1.35;
  text-align:left;
  text-transform:none;
}
#portfolio-gastronomie .gastronomie-lightbox[hidden]{
  display:none;
}
#portfolio-gastronomie .gastronomie-lightbox{
  position:fixed;
  z-index:80;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(1rem,3vw,2.5rem);
  background:rgba(11,10,9,.94);
  overscroll-behavior:contain;
}
#portfolio-gastronomie .gastronomie-lightbox img{
  display:block;
  width:auto;
  max-width:calc(100vw - clamp(2rem,6vw,5rem));
  height:auto;
  max-height:calc(100vh - clamp(5rem,10vw,8rem));
  object-fit:contain;
  border:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}
#portfolio-gastronomie .gastronomie-lightbox-close{
  position:absolute;
  top:clamp(.8rem,2vw,1.4rem);
  right:clamp(.8rem,2vw,1.4rem);
  padding:.55rem .8rem;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.2);
  color:#fff;
  font:500 .78rem/1 "Inter",Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
@media(max-width:680px){
  #portfolio-gastronomie{
    --gastronomie-gap:1.35rem;
  }
  #portfolio-gastronomie .dossier-cover{
    grid-template-columns:1fr;
    min-height:20rem;
    padding-right:4.8rem;
    align-content:center;
  }
  #portfolio-gastronomie .dossier-cover h2{
    max-width:calc(100% - 1rem);
    font-size:clamp(2.7rem,13vw,3.6rem);
  }
  #portfolio-gastronomie .dossier-cover .gastronomie-subtitle{
    right:-.65rem;
    font-size:clamp(2.5rem,11vw,3.1rem);
    transform:translate(35%,-50%) rotate(-90deg);
  }
  #portfolio-gastronomie .gastronomie-gallery{
    display:flex;
    flex-direction:column;
    gap:var(--gastronomie-gap);
    margin-top:3rem;
  }
  #portfolio-gastronomie .gastronomie-row{
    display:flex;
    flex-direction:column;
    gap:var(--gastronomie-gap);
  }
  #portfolio-gastronomie .gastronomie-row .gastronomie-photo,
  #portfolio-gastronomie .gastronomie-row--two .gastronomie-photo{
    display:block;
    height:auto;
  }
  #portfolio-gastronomie .gastronomie-photo img,
  #portfolio-gastronomie .gastronomie-item--wide .gastronomie-photo img{
    width:100%;
    max-width:100%;
    height:auto;
    max-height:none;
  }
  #portfolio-gastronomie .gastronomie-lightbox{
    padding:1rem;
  }
  #portfolio-gastronomie .gastronomie-lightbox img{
    max-width:calc(100vw - 2rem);
    max-height:calc(100vh - 5rem);
  }
}

/* Portfolio 03 · composition éditoriale validée */
#portfolio-recette{
  background:#f3eee5;
}
#portfolio-recette .recipe-portfolio{
  width:min(100% - clamp(2rem,8vw,8rem),1180px);
}
#portfolio-recette .dossier-cover{
  display:block;
  padding:clamp(4rem,7vw,6rem) 0 clamp(7rem,12vw,11rem);
  border:0;
}
#portfolio-recette .dossier-cover>p:first-child{
  margin:0 0 1.2rem;
  color:#4b463f;
  font-size:.78rem;
}
#portfolio-recette .dossier-cover h2{
  margin:0;
  color:var(--green);
  font-family:"Spectral",serif;
  font-size:clamp(3.7rem,9vw,8.5rem);
  font-weight:500;
  line-height:.82;
  letter-spacing:-.055em;
}
#portfolio-recette .dossier-cover h2 em{
  color:var(--accent);
  font-style:italic;
  font-weight:500;
}
#portfolio-recette .recipe-intro{
  max-width:44rem;
  margin-top:clamp(1.8rem,3vw,2.8rem);
  color:#3d3933;
  font-family:var(--sans);
  font-size:clamp(.96rem,1.4vw,1.12rem);
  line-height:1.45;
}
#portfolio-recette .recipe-gallery{
  gap:clamp(4.5rem,9vw,8.5rem);
  padding-bottom:clamp(7rem,12vw,12rem);
}
#portfolio-recette .recipe-row{
  gap:clamp(1.25rem,2.5vw,2.25rem);
}
#portfolio-recette .recipe-row .recipe-item{
  padding-bottom:1.9rem;
}
#portfolio-recette .recipe-item--story{
  display:grid;
  grid-template-columns:minmax(0,1.55fr) minmax(15rem,.72fr);
  gap:clamp(2.4rem,5.5vw,5.6rem);
  align-items:center;
}
#portfolio-recette .recipe-item--story-right{
  grid-template-columns:minmax(15rem,.72fr) minmax(0,1.55fr);
}
#portfolio-recette .recipe-item--story-right .recipe-photo{
  grid-column:2;
  grid-row:1;
}
#portfolio-recette .recipe-item--story-right .recipe-caption{
  grid-column:1;
  grid-row:1;
}
#portfolio-recette .recipe-item--story .recipe-caption{
  display:grid;
  align-content:center;
  gap:1.45rem;
  margin:0;
  color:#5a554e;
  font-family:var(--sans);
  font-size:clamp(.88rem,1.15vw,1.03rem);
  line-height:1.45;
}
#portfolio-recette .recipe-item--story .recipe-caption strong{
  color:#342f2b;
  font-family:var(--serif);
  font-size:clamp(2rem,3.5vw,3.65rem);
  font-weight:500;
  line-height:.98;
  letter-spacing:-.045em;
}
#portfolio-recette .recipe-item--story .recipe-caption span{
  max-width:23rem;
}
#portfolio-recette .recipe-item--story .recipe-number{
  display:none;
}
#portfolio-recette .recipe-row .recipe-number{
  top:auto;
  right:auto;
  bottom:-1.45rem;
  left:0;
  display:block;
  min-width:0;
  height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:#4b463f;
  font:500 .72rem/1 var(--sans);
  letter-spacing:.03em;
  box-shadow:none;
}
#portfolio-recette .recipe-row .recipe-number::before{
  content:'0';
}

@media(max-width:760px){
  #portfolio-recette .recipe-portfolio{
    width:min(100% - 1.5rem,1180px);
  }
  #portfolio-recette .dossier-cover{
    padding:4.25rem 0 4.5rem;
  }
  #portfolio-recette .dossier-cover h2{
    font-size:clamp(3.2rem,16vw,5.6rem);
  }
  #portfolio-recette .recipe-gallery{
    gap:2.8rem;
  }
  #portfolio-recette .recipe-row--two,
  #portfolio-recette .recipe-item--story,
  #portfolio-recette .recipe-item--story-right{
    display:grid;
    grid-template-columns:1fr;
    gap:1.15rem;
  }
  #portfolio-recette .recipe-item--story-right .recipe-photo,
  #portfolio-recette .recipe-item--story-right .recipe-caption{
    grid-column:1;
    grid-row:auto;
  }
  #portfolio-recette .recipe-item--story .recipe-photo{
    order:0;
  }
  #portfolio-recette .recipe-item--story .recipe-caption{
    order:1;
    gap:.55rem;
  }
  #portfolio-recette .recipe-item--story .recipe-caption strong{
    font-size:clamp(1.75rem,8vw,2.6rem);
  }
  #portfolio-recette .recipe-row .recipe-item{
    padding-bottom:1.55rem;
  }
}

/* Trois portfolios principaux */
.portfolio-composition .category-table{
  grid-column:1/span 7;
}
.portfolio-composition .category-table figure{
  aspect-ratio:16/10;
}
.portfolio-composition .category-produit{
  grid-column:9/span 4;
  margin-top:clamp(4rem,9vw,8rem);
}
.portfolio-composition .category-produit figure{
  aspect-ratio:3/4;
}
.portfolio-composition .category-voyage{
  grid-column:3/span 8;
  margin-top:clamp(5rem,10vw,9rem);
}
.portfolio-composition .category-voyage figure{
  aspect-ratio:16/10;
}

/* Produit & Studio : quatre séries éditoriales, images toujours entières. */
#portfolio-produit{
  --product-gap:clamp(1rem,2.2vw,2rem);
  overflow-x:hidden;
}
#portfolio-produit .product-portfolio{
  width:min(1460px,calc(100% - 3rem));
}
#portfolio-produit .product-series{
  padding-top:clamp(5rem,10vw,10rem);
}
#portfolio-produit .product-series + .product-series{
  margin-top:clamp(5rem,9vw,9rem);
  border-top:1px solid rgba(75,91,38,.38);
}
#portfolio-produit .product-series-heading{
  display:grid;
  grid-template-columns:minmax(3rem,.22fr) minmax(0,1fr);
  gap:clamp(1rem,3vw,3rem);
  align-items:start;
  margin-bottom:clamp(3rem,6vw,6rem);
}
#portfolio-produit .product-series-heading>p{
  margin:.75rem 0 0;
  color:var(--accent);
  font-size:.72rem;
  font-weight:600;
  letter-spacing:.14em;
}
#portfolio-produit .product-series-heading h3{
  max-width:14ch;
  margin:0;
  font:500 clamp(3rem,7vw,7rem)/.9 "Spectral",serif;
  letter-spacing:-.055em;
}
#portfolio-produit .product-series-heading span{
  display:block;
  margin-top:.8rem;
  color:rgba(27,23,18,.68);
  font-size:.83rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
#portfolio-produit .product-client{
  margin-top:clamp(6rem,11vw,11rem);
}
#portfolio-produit .product-client:first-of-type{
  margin-top:0;
}
#portfolio-produit .product-client-heading{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(15rem,.5fr);
  gap:2rem;
  align-items:end;
  margin-bottom:clamp(2rem,4vw,4rem);
  padding-bottom:1rem;
  border-bottom:1px solid rgba(75,91,38,.34);
}
#portfolio-produit .product-client-heading h4{
  margin:0;
  font:500 clamp(2.1rem,4.8vw,4.8rem)/.95 "Spectral",serif;
  letter-spacing:-.045em;
}
#portfolio-produit .product-client-heading p{
  margin:0;
  color:rgba(27,23,18,.68);
  font-size:.82rem;
  letter-spacing:.065em;
  line-height:1.5;
  text-transform:uppercase;
}
#portfolio-produit .product-layout{
  display:grid;
  gap:var(--product-gap);
}
#portfolio-produit .product-row{
  display:grid;
  gap:var(--product-gap);
  align-items:start;
}
#portfolio-produit .product-row--two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#portfolio-produit .product-row--three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#portfolio-produit .product-shot{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
#portfolio-produit .product-shot button{
  display:block;
  width:100%;
  margin:0;
  padding:0;
  appearance:none;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  cursor:zoom-in;
}
#portfolio-produit .product-shot img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  object-position:center;
  border:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}
#portfolio-produit .product-shot button:focus-visible{
  outline:2px solid currentColor;
  outline-offset:5px;
}
#portfolio-produit .product-shot--hero{
  width:100%;
}
#portfolio-produit .product-shot--feature{
  width:min(78%,1080px);
  margin-inline:auto;
}
#portfolio-produit .product-shot--finale{
  margin-top:clamp(1rem,3vw,3rem);
}
#portfolio-produit .portfolio-lightbox[hidden]{
  display:none;
}
#portfolio-produit .portfolio-lightbox{
  position:fixed;
  z-index:180;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:clamp(1rem,3vw,2.5rem);
  background:rgba(11,10,9,.94);
  overscroll-behavior:contain;
}
#portfolio-produit .portfolio-lightbox img{
  display:block;
  width:auto;
  max-width:calc(100vw - clamp(2rem,6vw,5rem));
  height:auto;
  max-height:calc(100vh - clamp(5rem,10vw,8rem));
  object-fit:contain;
  border:0;
  background:transparent;
  box-shadow:none;
}
#portfolio-produit .portfolio-lightbox-close{
  position:absolute;
  top:clamp(.8rem,2vw,1.4rem);
  right:clamp(.8rem,2vw,1.4rem);
  padding:.55rem .8rem;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.2);
  color:#fff;
  font:500 .78rem/1 "Inter",Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}

@media(max-width:800px){
  .portfolio-composition .category-table{grid-column:1/span 7}
  .portfolio-composition .category-produit{grid-column:8/-1;margin-top:4rem}
  .portfolio-composition .category-voyage{grid-column:2/span 10;margin-top:3rem}
}

@media(max-width:680px){
  .portfolio-composition .category-table,
  .portfolio-composition .category-produit,
  .portfolio-composition .category-voyage{
    width:100%;
    margin:0 0 3.5rem;
  }
  #portfolio-produit{
    --product-gap:1.35rem;
  }
  #portfolio-produit .product-portfolio{
    width:min(100% - 1.5rem,1460px);
  }
  #portfolio-produit .product-series-heading,
  #portfolio-produit .product-client-heading{
    grid-template-columns:1fr;
    gap:.8rem;
  }
  #portfolio-produit .product-row--two,
  #portfolio-produit .product-row--three{
    grid-template-columns:1fr;
  }
  #portfolio-produit .product-shot--feature{
    width:100%;
  }
  #portfolio-produit .product-shot img{
    width:100%;
    height:auto;
    max-height:none;
  }
  #portfolio-produit .portfolio-lightbox{
    padding:1rem;
  }
  #portfolio-produit .portfolio-lightbox img{
    max-width:calc(100vw - 2rem);
    max-height:calc(100vh - 5rem);
  }
}

/* Portfolio 03 · Recette & stylisme - rythme éditorial sans recadrage */
#portfolio-recette{
  --recipe-gap:clamp(1.1rem,2.2vw,2rem);
  overflow-x:hidden;
}
#portfolio-recette .recipe-portfolio{
  width:min(100% - clamp(1.5rem,5vw,6rem),1460px);
  margin-inline:auto;
}
#portfolio-recette .recipe-intro{
  max-width:34rem;
  font-size:clamp(1rem,1.45vw,1.2rem);
  line-height:1.55;
}
#portfolio-recette .recipe-intro p{
  margin:0;
}
#portfolio-recette .recipe-intro p+p{
  margin-top:.8rem;
}
#portfolio-recette .recipe-intro strong{
  color:var(--accent);
  font-weight:650;
}
#portfolio-recette .recipe-gallery{
  display:grid;
  gap:var(--recipe-gap);
  padding-bottom:clamp(6rem,10vw,10rem);
}
#portfolio-recette .recipe-row{
  display:grid;
  gap:var(--recipe-gap);
  align-items:start;
}
#portfolio-recette .recipe-row--two{
  grid-template-columns:repeat(2,minmax(0,1fr));
}
#portfolio-recette .recipe-row--three{
  grid-template-columns:repeat(3,minmax(0,1fr));
}
#portfolio-recette .recipe-item{
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
#portfolio-recette .recipe-photo{
  position:relative;
  display:block;
  width:100%;
  margin:0;
  padding:0;
  appearance:none;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  cursor:zoom-in;
}
#portfolio-recette .recipe-number{
  position:absolute;
  z-index:2;
  top:clamp(.55rem,1.2vw,.85rem);
  left:clamp(.55rem,1.2vw,.85rem);
  display:grid;
  place-items:center;
  min-width:2.15rem;
  height:2.15rem;
  padding:0 .45rem;
  border:1px solid rgba(255,255,255,.72);
  border-radius:999px;
  background:rgba(24,20,18,.78);
  color:#fff;
  font:700 .76rem/1 "Inter",Arial,sans-serif;
  letter-spacing:.04em;
  box-shadow:0 3px 14px rgba(0,0,0,.18);
  pointer-events:none;
}
#portfolio-recette .recipe-item img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  object-position:center;
  border:0;
  background:transparent;
  box-shadow:none;
  transform:none;
}
#portfolio-recette .recipe-row .recipe-photo{
  display:flex;
  height:clamp(18rem,36vw,34rem);
  align-items:flex-start;
  justify-content:center;
}
#portfolio-recette .recipe-row--three .recipe-photo{
  height:clamp(15rem,25vw,25rem);
}
#portfolio-recette .recipe-row .recipe-item img{
  width:100%;
  height:100%;
  object-fit:contain;
}
#portfolio-recette .recipe-photo:focus-visible{
  outline:2px solid currentColor;
  outline-offset:5px;
}
#portfolio-recette .recipe-item--hero,
#portfolio-recette .recipe-item--wide{
  width:100%;
}
#portfolio-recette .recipe-item--feature{
  width:min(66%,900px);
  margin-inline:auto;
}
#portfolio-recette .recipe-item--finale{
  width:min(58%,820px);
  margin:clamp(1rem,3vw,3rem) auto 0;
}
#portfolio-recette .recipe-item figcaption{
  margin:.75rem 0 0;
  color:#625f57;
  font:500 clamp(.72rem,1vw,.84rem)/1.4 "Inter",Arial,sans-serif;
  letter-spacing:.06em;
}
#portfolio-recette .recipe-caption{
  display:grid;
  gap:.3rem;
  margin:clamp(.85rem,1.6vw,1.25rem) 0 0;
  color:var(--green);
  font-family:var(--sans);
  font-size:clamp(.82rem,.35vw + .75rem,1rem);
  font-weight:400;
  line-height:1.55;
  letter-spacing:0;
  text-transform:none;
  opacity:1;
  overflow-wrap:break-word;
}
#portfolio-recette .recipe-caption strong{
  color:var(--accent);
  font-family:var(--serif);
  font-size:clamp(1.45rem,2.5vw,2.75rem);
  font-weight:500;
  line-height:1.04;
  letter-spacing:-.035em;
  text-wrap:balance;
}
#portfolio-recette .recipe-caption span{
  max-width:52rem;
  text-wrap:pretty;
}
#portfolio-recette .recipe-lightbox[hidden]{
  display:none;
}
#portfolio-recette .recipe-lightbox{
  position:fixed;
  z-index:190;
  inset:0;
  display:grid;
  grid-template-columns:minmax(2.75rem,6vw) minmax(0,1fr) minmax(2.75rem,6vw);
  align-items:center;
  justify-items:center;
  padding:clamp(3.75rem,7vw,5.5rem) clamp(.75rem,2vw,2rem) clamp(1rem,3vw,2rem);
  background:rgba(11,10,9,.95);
  overscroll-behavior:contain;
}
#portfolio-recette .recipe-lightbox img{
  grid-column:2;
  display:block;
  width:auto;
  max-width:100%;
  height:auto;
  max-height:calc(100vh - clamp(5rem,10vw,8rem));
  object-fit:contain;
  border:0;
  background:transparent;
  box-shadow:none;
}
#portfolio-recette .recipe-lightbox-caption{
  position:absolute;
  left:50%;
  bottom:clamp(.75rem,2vw,1.35rem);
  transform:translateX(-50%);
  display:grid;
  gap:.18rem;
  width:min(calc(100% - 2rem),36rem);
  padding:.65rem .9rem;
  border:1px solid rgba(255,255,255,.42);
  background:rgba(0,0,0,.45);
  color:#fff;
  text-align:center;
}
#portfolio-recette .recipe-lightbox-caption[hidden]{
  display:none;
}
#portfolio-recette .recipe-lightbox-caption strong{
  font:500 clamp(1.05rem,2vw,1.35rem)/1.1 var(--serif);
}
#portfolio-recette .recipe-lightbox-caption span{
  font:400 .78rem/1.35 var(--sans);
}
#portfolio-recette .recipe-lightbox-close{
  position:absolute;
  top:clamp(.8rem,2vw,1.4rem);
  right:clamp(.8rem,2vw,1.4rem);
  padding:.55rem .8rem;
  border:1px solid rgba(255,255,255,.45);
  background:rgba(0,0,0,.2);
  color:#fff;
  font:500 .78rem/1 "Inter",Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
#portfolio-recette .recipe-lightbox-nav{
  width:clamp(2.5rem,4vw,3.25rem);
  height:clamp(2.5rem,4vw,3.25rem);
  padding:0;
  border:1px solid rgba(255,255,255,.45);
  border-radius:50%;
  background:rgba(0,0,0,.2);
  color:#fff;
  font-size:clamp(1.15rem,2vw,1.6rem);
  line-height:1;
  cursor:pointer;
}
#portfolio-recette .recipe-lightbox-prev{grid-column:1;grid-row:1}
#portfolio-recette .recipe-lightbox-next{grid-column:3;grid-row:1}

@media(max-width:680px){
  #portfolio-recette{
    --recipe-gap:1.35rem;
  }
  #portfolio-recette .recipe-portfolio{
    width:min(100% - 1.5rem,1460px);
  }
  #portfolio-recette .recipe-row--two,
  #portfolio-recette .recipe-row--three{
    grid-template-columns:1fr;
  }
  #portfolio-recette .recipe-row .recipe-photo,
  #portfolio-recette .recipe-row--three .recipe-photo{
    height:auto;
  }
  #portfolio-recette .recipe-row .recipe-item img{
    width:100%;
    height:auto;
  }
  #portfolio-recette .recipe-item--feature,
  #portfolio-recette .recipe-item--finale{
    width:100%;
    margin:0;
  }
  #portfolio-recette .recipe-item img{
    width:100%;
    height:auto;
    max-height:none;
  }
  #portfolio-recette .recipe-caption{
    gap:.25rem;
    margin-top:.75rem;
    font-size:.88rem;
    line-height:1.5;
  }
  #portfolio-recette .recipe-caption strong{
    font-size:clamp(1.55rem,8vw,2.25rem);
  }
  #portfolio-recette .recipe-lightbox{
    grid-template-columns:2.75rem minmax(0,1fr) 2.75rem;
    padding:4.5rem .35rem 1rem;
  }
  #portfolio-recette .recipe-lightbox img{
    max-height:calc(100vh - 5.5rem);
  }
}

/* Les règles ci-dessus complètent la feuille historique ; ces deux valeurs
   restent en dernier pour conserver le rythme validé. */
#portfolio-recette .recipe-portfolio{
  width:min(100% - clamp(2rem,8vw,8rem),1180px);
}
#portfolio-recette .recipe-gallery{
  gap:clamp(4.5rem,9vw,8.5rem);
}
@media(max-width:760px){
  #portfolio-recette .recipe-portfolio{
    width:min(100% - 1.5rem,1180px);
  }
  #portfolio-recette .recipe-gallery{
    gap:2.8rem;
  }
}

/* Harmonisation finale des trois portfolios : mêmes rythmes, ratios intacts. */
:root{
  --portfolio-gap-horizontal:22px;
  --portfolio-gap-vertical:24px;
}

#portfolio-gastronomie .gastronomie-gallery,
#portfolio-produit .product-layout,
#portfolio-recette .recipe-gallery{
  row-gap:var(--portfolio-gap-vertical);
}

#portfolio-produit .product-layout > .product-shot--finale{
  margin-top:0;
}

#portfolio-gastronomie .gastronomie-row,
#portfolio-produit .product-row,
#portfolio-recette .recipe-row{
  display:flex;
  width:100%;
  align-items:flex-start;
  gap:var(--portfolio-gap-horizontal);
}

#portfolio-gastronomie .gastronomie-row > .gastronomie-item,
#portfolio-produit .product-row > .product-shot,
#portfolio-recette .recipe-row > .recipe-item{
  flex:var(--portfolio-image-ratio,1) 1 0;
  width:auto;
  min-width:0;
}

#portfolio-gastronomie .gastronomie-row .gastronomie-photo,
#portfolio-produit .product-row .product-shot button,
#portfolio-recette .recipe-row .recipe-photo{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:var(--portfolio-image-ratio,1);
}

#portfolio-gastronomie .gastronomie-row .gastronomie-photo img,
#portfolio-produit .product-row .product-shot img,
#portfolio-recette .recipe-row .recipe-item img{
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:none;
  object-fit:contain;
  object-position:center;
}

@media(max-width:680px){
  #portfolio-gastronomie .gastronomie-gallery,
  #portfolio-produit .product-layout,
  #portfolio-recette .recipe-gallery,
  #portfolio-gastronomie .gastronomie-row,
  #portfolio-produit .product-row,
  #portfolio-recette .recipe-row{
    gap:var(--portfolio-gap-vertical);
  }

  #portfolio-gastronomie .gastronomie-row,
  #portfolio-produit .product-row,
  #portfolio-recette .recipe-row{
    flex-direction:column;
  }

  #portfolio-gastronomie .gastronomie-row > .gastronomie-item,
  #portfolio-produit .product-row > .product-shot,
  #portfolio-recette .recipe-row > .recipe-item{
    flex:none;
    width:100%;
  }

  #portfolio-gastronomie .gastronomie-row .gastronomie-photo,
  #portfolio-produit .product-row .product-shot button,
  #portfolio-recette .recipe-row .recipe-photo{
    height:auto;
    aspect-ratio:auto;
  }

  #portfolio-gastronomie .gastronomie-row .gastronomie-photo img,
  #portfolio-produit .product-row .product-shot img,
  #portfolio-recette .recipe-row .recipe-item img{
    width:100%;
    height:auto;
  }
}

/* Aperçu : home épurée, sans modifier les dossiers portfolio. */
.home-clean .page-section{padding-block:clamp(5rem,9vw,9rem)}
.home-clean .hero{min-height:88svh;gap:5vw;padding-bottom:4rem}
.home-clean .hero .lead{max-width:25rem;font-size:1rem}
.home-clean .hero .hero-secondary{display:none}
.home-clean .hero-images{padding:0;max-width:none;width:100%}
.home-clean .hero-primary img{aspect-ratio:4/5;object-fit:cover}
.home-clean .hero-note{position:static;writing-mode:horizontal-tb;margin-top:1.2rem}
.home-clean .home-univers{position:relative;display:grid;grid-template-columns:1fr 1fr;column-gap:7vw;align-items:center;padding-top:4rem;padding-bottom:6rem}
.home-clean .home-univers>.index{grid-column:1/-1}
.home-clean .home-univers h2,.home-clean .home-nadia h2{font-size:clamp(3rem,5.5vw,6rem)}
.home-clean .home-univers>p:not(.index){max-width:31rem;font-size:clamp(1.1rem,1.7vw,1.55rem);line-height:1.7}
.home-clean .home-punctuation{width:48px;position:absolute;right:var(--pad);bottom:1rem}
.home-clean .portfolio .section-intro{margin-bottom:3rem}
.home-clean .portfolio .section-intro>p:last-child{display:none}
.home-clean .portfolio-composition{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2.5vw,2.5rem);align-items:start}
.home-clean .portfolio-composition .portfolio-category{grid-column:auto;width:100%;margin:0;min-width:0}
.home-clean .portfolio-composition .portfolio-category figure{aspect-ratio:4/5;margin:0 0 1.3rem}
.home-clean .portfolio-category img{width:100%;height:100%;object-fit:cover;transform:none;filter:none;transition:none}
.home-clean .category-table img{object-position:50% 50%}
.home-clean .category-produit img{object-position:50% 62%}
.home-clean .category-voyage img{object-position:50% 48%}
.home-clean .portfolio-composition .portfolio-category h3{font:500 clamp(1.6rem,2.6vw,3rem)/1.08 var(--serif);letter-spacing:-.035em;margin:0;display:inline}
.home-clean .portfolio-category .category-action{float:right;margin:.3rem 0 0;border:0;font-size:1rem;color:var(--accent)}
.home-clean .home-craft{display:grid;grid-template-columns:1fr 1.15fr;gap:4vw 8vw}
.home-clean .home-craft .section-intro{margin:0}
.home-clean .home-craft-lines>div{padding:1.5rem 0;border-top:1px solid var(--rule)}
.home-clean .home-craft-lines>div:first-child{padding-top:0;border-top:0}
.home-clean .home-craft-lines h3{font:500 clamp(1.6rem,2.4vw,2.5rem)/1.15 var(--serif);margin:0 0 .8rem}
.home-clean .home-craft-lines p{font-size:.9rem;line-height:1.8;margin:0;max-width:35rem}
.home-clean .home-references{grid-column:1/-1;margin:1rem 0 0;font-size:.73rem;letter-spacing:.04em;color:var(--accent)}
.home-clean .home-nadia{display:grid;grid-template-columns:1fr 1fr;gap:8vw}
.home-clean .home-nadia-copy>p:not(.index){max-width:32rem;font-size:.95rem;line-height:1.85;margin:2rem 0 0}
.home-clean .home-signatures{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-content:start}
.home-clean .home-signatures>.index{grid-column:1/-1;margin-bottom:.5rem}
.home-clean .home-signatures button{border:0;padding:0;background:none;text-align:left;color:inherit;font:inherit;cursor:pointer}
.home-clean .home-signatures img{width:100%;aspect-ratio:3/4;object-fit:cover;margin-bottom:1rem}
.home-clean .home-signatures button>span{font:500 1.3rem/1.2 var(--serif)}
.home-clean .home-signatures button>span>span{color:var(--accent)}
.home-clean .contact{min-height:0;padding-block:7rem}
.home-clean .contact h2{max-width:15ch}
.home-clean .reveal{transition:opacity .35s ease;transform:none}
@media(max-width:950px){
 .home-clean .hero{grid-template-columns:1fr 1fr;min-height:0;gap:4vw;padding-top:8rem}
 .home-clean .hero h1{font-size:clamp(3rem,6.7vw,6rem)}
 .home-clean .home-nadia{gap:4vw}
}
@media(max-width:680px){
 .home-clean .page-section{padding-block:4.5rem}
 .home-clean .hero{display:flex;flex-direction:column;padding-top:7rem;gap:3rem}
 .home-clean .hero h1{font-size:clamp(3.7rem,16vw,6rem)}
 .home-clean .hero-images{max-width:100%;margin:0}
 .home-clean .hero-primary img{aspect-ratio:4/3}
 .home-clean .home-univers,.home-clean .home-craft,.home-clean .home-nadia{display:block}
 .home-clean .home-univers h2,.home-clean .home-nadia h2{font-size:clamp(3rem,13vw,4.5rem)}
 .home-clean .home-univers>p:not(.index){margin-top:2rem;font-size:1.15rem}
 .home-clean .home-punctuation{position:static;margin:2rem 0 0 auto;width:38px}
 .home-clean .portfolio-composition{grid-template-columns:1fr;gap:3rem}
 .home-clean .portfolio-composition .portfolio-category{width:100%;margin:0}
 .home-clean .portfolio-composition .portfolio-category figure{aspect-ratio:4/5}
 .home-clean .portfolio-composition .portfolio-category h3{font-size:2.2rem}
 .home-clean .home-craft-lines{margin-top:3rem}
 .home-clean .home-references{margin-top:2rem;line-height:1.8}
 .home-clean .home-signatures{margin-top:3rem;gap:1rem}
 .home-clean .home-signatures button>span{font-size:1.15rem}
 .home-clean .contact{padding-block:5rem}
}
.home-clean .reveal{opacity:1;transform:none;transition:none}
@media(min-width:951px){.home-clean .hero h1{font-size:clamp(3.8rem,6.1vw,7rem)}}

/* Finitions validées : contact, références et projets d’auteur. */
.home-clean .button{border-radius:999px}
.home-clean .home-references button{appearance:none;border:0;background:none;padding:.5rem 0;color:inherit;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:.25em}
.home-clean .home-references button:focus-visible,.author-project:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.home-clean .home-signatures{grid-template-columns:minmax(0,1fr);gap:2.6rem;max-width:29rem;width:100%;justify-self:end}
.home-clean .home-signatures :is(button,.author-project){display:block;border:0;padding:0;background:none;text-align:left;color:inherit;font:inherit;text-decoration:none;cursor:pointer}
.home-clean .home-signatures :is(button,.author-project)>span{font:500 1.3rem/1.2 var(--serif)}
.home-clean .home-signatures :is(button,.author-project)>span>span{color:var(--accent)}
.home-clean .home-signatures img{aspect-ratio:4/3;object-fit:cover}
.home-clean .contact-actions .button{display:inline-flex;align-items:center;gap:1rem;padding:.65rem 1.8rem .65rem 1rem;min-height:4.8rem}
.home-clean .contact-navet{width:2.6rem;height:4.4rem;object-fit:contain}
@media(max-width:700px){.home-clean .home-signatures{justify-self:start;max-width:none}.home-clean .contact-actions .button{min-height:4.4rem}}

#dossier-culinartistique-title{color:#141512}
#dossier-culinartistique .culinartistique-subtitle{color:var(--accent)}

#dossier-culinartistique-title{max-width:none;font-size:clamp(3.7rem,9vw,8.5rem)}
#dossier-culinartistique-title .culinartistique-subtitle{font-size:inherit;line-height:inherit}
@media(max-width:700px){#dossier-culinartistique-title{font-size:clamp(2.6rem,11vw,5.6rem);line-height:1.02}}
/* Culin’artistique : ouverture compacte, photos rapprochées du titre. */
#dossier-culinartistique .dossier-inner{padding-top:clamp(4.5rem,6vw,6rem)}
#dossier-culinartistique .author-dossier-cover{min-height:0;display:block;padding-bottom:clamp(1.8rem,3vw,3rem);margin-bottom:0;align-items:start}
#dossier-culinartistique .author-dossier-grid{padding-top:0}

/* Les deux boutons de contact partagent le même gabarit. */
.home-clean .hero .button,.home-clean .contact-actions .button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:0;height:3.5rem;min-width:11rem;padding:0 1.8rem;border-radius:999px;font:500 .72rem/1 var(--sans);letter-spacing:.1em}
