:root{--cream:#f6f1e8;--ink:#332e27;--red:#a24a35;--cafe-bg:#e7dfd1;--cafe-accent:#765039;--restaurant-bg:#ecdcd5;--restaurant-accent:#8a453b;--hotel-bg:#ebe1c9;--hotel-accent:#6d6140;--beach-bg:#dce7e4;--beach-accent:#2e6567;--yellow:#ebe1c9;--serif:'Fraunces',Georgia,serif;--sans:'Source Sans 3',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);font-size:14px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid var(--red);outline-offset:5px}button{border:0}img{display:block;width:100%;height:100%;object-fit:cover}.wrap{width:calc(100% - 112px);max-width:1392px;margin-inline:auto}.site-header{margin:0 40px;padding:30px 16px 25px;border-bottom:1px solid #302d2530;display:flex;justify-content:space-between;align-items:center}.wordmark{font-family:var(--serif);font-size:29px;letter-spacing:-1.1px;line-height:1}.wordmark span{display:block;font-family:var(--sans);font-size:8px;letter-spacing:2.5px;margin-top:11px}.site-header nav{display:flex;gap:36px;align-items:center;font-size:12px}.site-header nav span{margin-left:12px}.nav-contact{border-bottom:1px solid;padding:10px 0}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;line-height:1.7;margin:0}.dot{width:7px;height:7px;background:var(--red);display:inline-block;border-radius:50%;margin-right:10px}.hero{display:grid;grid-template-columns:46% 54%;padding:56px 0 46px;min-height:640px}.hero-copy{padding:16px 35px 0 0;position:relative}h1,h2,p{margin-top:0}h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:-2px;line-height:.99}h1{font-size:clamp(60px,6.5vw,100px);margin:30px 0 24px;position:relative;z-index:2}em{font-weight:400;color:var(--red)}.hero-intro{max-width:320px;font-size:13px;line-height:1.8;margin-bottom:28px}.text-link{background:none;padding:0 0 9px;border-bottom:1px solid currentColor;display:inline-flex;gap:36px;align-items:center;font-size:12px;font-weight:500;line-height:1.4}.text-link span{font-size:20px;transition:transform .2s}.text-link:hover span{transform:translate(3px,-3px)}.handnote{font-family:var(--serif);font-style:italic;font-size:23px;display:block;transform:rotate(-6deg);margin:29px 0 0 34px;color:#786d54}.hero-visual{position:relative;min-width:0;display:grid;grid-template-columns:1.1fr .8fr;gap:16px;padding-bottom:25px}.photo{overflow:hidden;background:#302d2510;padding:0;display:block;width:100%;position:relative}.photo img{transition:transform .65s cubic-bezier(.2,.7,.2,1)}.photo:hover img{transform:scale(1.035)}.photo:after{content:'↗';position:absolute;bottom:15px;right:15px;background:var(--cream);color:var(--ink);width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-size:20px;opacity:0;transform:translateY(7px);transition:.2s}.photo:hover:after,.photo:focus-visible:after{opacity:1;transform:none}.hero-main{height:465px}.hero-small{height:315px;margin-top:105px}.hero-caption{position:absolute;bottom:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.4px;margin:0}.hero-caption span{font-family:var(--serif);font-style:italic;font-size:18px;letter-spacing:0}.seal{position:absolute;right:26px;top:0;width:103px;height:103px;background:var(--yellow);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(13deg);font-size:8px;letter-spacing:1.4px;gap:2px;pointer-events:none}.seal b{font-size:42px;font-weight:400;line-height:1}.ticker{border-top:1px solid #302d2530;border-bottom:1px solid #302d2530;padding:16px 0;display:flex;justify-content:space-around;align-items:center;gap:20px;overflow:hidden;white-space:nowrap}.ticker span{font-family:var(--serif);font-size:26px}.ticker i{font-size:25px;color:var(--red);font-style:normal}.intro{padding-block:82px 0}.intro>div{display:grid;grid-template-columns:1.5fr 1fr;gap:80px;align-items:end;margin-top:25px}.intro h2{font-size:44px;line-height:1.12;margin:0}.intro>div>p{font-size:13px;line-height:1.8;max-width:340px;margin-bottom:3px}.chapter-nav{display:flex;justify-content:space-between;gap:20px;margin-top:48px;border-top:1px solid #302d2530;padding:24px 0 30px;font-size:12px}.chapter-nav a{display:flex;align-items:center;gap:10px}.chapter-nav sup{font-size:8px;margin-left:25px}.swatch{width:12px;height:12px;border:1px solid #302d2520;border-radius:50%}.sage{background:var(--cafe-accent)}.pink{background:var(--restaurant-accent)}.yellow{background:var(--hotel-accent)}.blue{background:var(--beach-accent)}.chapter{padding:44px 0 54px;scroll-margin-top:0}.chapter-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:35px}.little-note{font-family:var(--serif);font-size:22px;font-style:italic}.chapter h2{font-size:clamp(54px,5.8vw,82px);margin-bottom:24px}.chapter-copy{font-size:13px;line-height:1.85;max-width:330px;margin-bottom:25px}.cafes{--chapter-accent:var(--cafe-accent);background:var(--cafe-bg)}.cafe-layout{display:grid;grid-template-columns:1fr 1fr;gap:9%}.cafe-detail{width:58%;height:230px;margin-top:35px}.caption{font-family:var(--serif);font-style:italic;font-size:18px;margin:10px 0 0}.cafe-feature>.photo{height:625px}.photo-meta{display:flex;justify-content:space-between;gap:12px;margin-top:13px;font-size:8px;letter-spacing:1px}.photo-meta span:first-child{font-family:var(--serif);font-size:18px;letter-spacing:0}.restaurants{--chapter-accent:var(--restaurant-accent);background:var(--restaurant-bg)}.draw-star{font-size:38px;color:var(--red);line-height:1}.section-title{display:flex;justify-content:space-between;gap:60px;align-items:end;margin-bottom:40px}.section-title h2{margin-bottom:0}.section-title>div{max-width:325px;padding-bottom:8px}.restaurant-gallery{display:grid;grid-template-columns:1fr 1fr 1fr;gap:22px;align-items:start}.restaurant-gallery figure{margin:0}.restaurant-gallery .photo{height:400px}.restaurant-gallery figure:nth-child(2){margin-top:55px}.restaurant-gallery figure:nth-child(3) .photo{height:340px}.restaurant-gallery figcaption{font-family:var(--serif);font-size:20px;font-style:italic;margin-top:12px}.project-footer{border-top:1px solid #302d2530;padding-top:20px;margin-top:36px;display:flex;justify-content:space-between;font-size:9px;letter-spacing:1px}.project-footer span:last-child{font-family:var(--serif);font-style:italic;font-size:19px;letter-spacing:0}.hotels{--chapter-accent:var(--hotel-accent);background:var(--hotel-bg);padding-bottom:70px}.hotel-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:9%;align-items:center}.hotel-images{position:relative;padding:0 65px 65px 0}.hotel-large{height:550px;width:88%}.hotel-small{width:45%;height:230px;position:absolute;right:0;bottom:0;border:8px solid var(--yellow)}.hotel-note{position:absolute;bottom:0;left:12px;font-family:var(--serif);font-style:italic;font-size:24px;transform:rotate(-7deg)}.hotel-copy{padding-bottom:25px}.plages{--chapter-accent:var(--beach-accent);background:var(--beach-bg)}.beach-gallery{display:grid;grid-template-columns:1fr 1.3fr 1fr;gap:22px;align-items:center}.beach-gallery .photo{height:350px}.beach-gallery .beach-center{height:460px}.about{padding-block:90px}.about-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:90px;margin-top:30px}.about h2{font-size:52px;line-height:1.08}.about-grid>div>p{font-size:13px;line-height:1.85}.approach{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:40px;border-top:1px solid #302d2530;padding-top:25px}.approach p{font-size:11px;line-height:1.8;margin:0;position:relative;padding-left:30px}.approach span{position:absolute;top:0;left:0;color:var(--red);font-size:10px}.approach b{display:block;font-size:14px;margin-bottom:6px;font-weight:500}.contact{background:var(--red);color:var(--cream);padding:55px 0 60px}.contact h2{font-size:clamp(80px,10vw,145px);margin:35px 0 40px;position:relative}.contact h2 em{color:var(--cream)}.contact h2>span{position:absolute;right:5%;top:0;font-family:var(--sans);font-size:160px;transform:rotate(10deg)}.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px;border-top:1px solid #f5f1e850;padding-top:28px}.contact-bottom p{font-size:13px;line-height:1.8;margin:0}.contact-button{border:1px solid #f5f1e880;padding:19px 23px;display:flex;gap:55px;align-items:center;font-size:12px}.contact-button:hover{background:var(--cream);color:var(--red)}.contact-button span{font-size:22px}footer{padding-block:40px 20px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:25px}footer .wordmark{font-size:25px}footer>p{font-size:10px;margin:0}footer>div{display:flex;gap:22px;font-size:10px}footer small{width:100%;border-top:1px solid #302d2520;padding-top:18px;font-size:9px;color:#766f62;text-align:right}.skip{position:fixed;top:-60px;left:20px;padding:15px;background:var(--cream);z-index:20}.skip:focus{top:10px}
dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;background:#24251f;color:var(--cream);padding:22px 32px;overflow:hidden}dialog::backdrop{background:#24251f}dialog[open]{display:flex;flex-direction:column}.lightbox-top,.lightbox-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-shrink:0}.lightbox-top{height:44px}.lightbox-top p{font-size:12px;letter-spacing:1px;margin:0}.close{background:none;color:inherit;font-size:12px;display:flex;gap:22px;align-items:center;padding:8px}.close span{font-size:28px}.lightbox-image{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;gap:25px;padding:16px 0}.lightbox-image img{height:100%;width:calc(100% - 150px);object-fit:contain}.lightbox-image>button{border:1px solid #f5f1e860;border-radius:50%;width:44px;height:44px;flex-shrink:0;background:transparent;color:inherit;font-size:22px}.lightbox-image>button:hover{background:var(--cream);color:var(--ink)}.lightbox-bottom{height:45px;font-size:12px}.lightbox-bottom p{margin:0}body.modal-open{overflow:hidden}
@media(min-width:1550px){.hero{min-height:740px}.hero-main{height:565px}.hero-small{height:390px;margin-top:130px}.hero-copy{padding-top:35px}.hero-intro{font-size:15px}.seal{width:120px;height:120px;right:40px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.site-header{margin-inline:24px;padding-inline:8px}.site-header nav{gap:22px}.hero{grid-template-columns:48% 52%;padding-top:40px;min-height:590px}.hero-copy{padding-right:20px}h1{font-size:65px}.hero-visual{grid-template-columns:1fr .7fr;gap:10px}.hero-main{height:430px}.hero-small{height:280px}.seal{width:84px;height:84px;font-size:7px;right:6px}.seal b{font-size:34px}.hero-caption{font-size:6px}.hero-caption span{font-size:16px}.hero-intro{font-size:12px}.intro>div{gap:35px}.intro h2{font-size:38px}.chapter-nav{gap:12px;font-size:10px}.chapter-nav sup{margin-left:4px}.chapter h2{font-size:62px}.cafe-layout{gap:7%}.cafe-feature>.photo{height:570px}.cafe-detail{height:200px;width:70%}.restaurant-gallery{gap:16px}.restaurant-gallery .photo{height:340px}.restaurant-gallery figure:nth-child(3) .photo{height:290px}.hotel-layout{gap:6%;grid-template-columns:1.2fr 1fr}.hotel-large{height:480px;width:95%}.hotel-images{padding-right:40px}.hotel-small{height:190px;width:50%}.beach-gallery{gap:16px}.beach-gallery .photo{height:290px}.beach-gallery .beach-center{height:380px}.about-grid{gap:45px}.about h2{font-size:44px}footer>p{display:none}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.site-header{margin:0 20px;padding:22px 0 20px;gap:15px}.wordmark{font-size:25px}.wordmark span{font-size:7px;letter-spacing:1.8px;margin-top:8px}.site-header nav{gap:0}.site-header nav>a:not(.nav-contact){display:none}.nav-contact{font-size:11px;padding:8px 0}.site-header nav span{margin-left:5px}.hero{grid-template-columns:1fr;padding:28px 0 30px;gap:28px}.hero-copy{padding:0}.eyebrow{font-size:9px;letter-spacing:1.5px}h1{font-size:clamp(59px,13vw,86px);margin:24px 0 20px;letter-spacing:-1.6px}.hero-intro{font-size:13px;max-width:330px;margin-bottom:20px}.handnote{position:absolute;right:0;bottom:0;font-size:19px;margin:0;max-width:120px;text-align:center;transform:rotate(-8deg)}.hero-visual{grid-template-columns:1.1fr .85fr;gap:12px;padding-bottom:30px}.hero-main{height:350px}.hero-small{height:250px;margin-top:64px}.seal{width:77px;height:77px;right:12px;top:-12px}.hero-caption{font-size:7px}.hero-caption span{font-size:17px}.ticker{justify-content:flex-start;padding:13px 20px;gap:22px}.ticker span{font-size:23px}.ticker i{font-size:20px}.intro{padding-top:46px}.intro>div{grid-template-columns:1fr;gap:20px;margin-top:22px}.intro h2{font-size:35px;letter-spacing:-1px}.intro>div>p{font-size:12px;max-width:100%}.chapter-nav{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:27px;padding-block:24px;font-size:11px}.chapter-nav a{gap:8px}.chapter-nav sup{margin-left:auto;padding-right:10px}.chapter{padding:30px 0 35px}.chapter-heading{margin-bottom:27px;gap:15px}.little-note{font-size:16px;max-width:125px;text-align:right}.chapter h2{font-size:56px;letter-spacing:-1.5px}.chapter-copy{font-size:12px}.cafe-layout{display:flex;flex-direction:column;gap:24px}.cafe-detail{width:56%;height:200px;margin-top:28px}.cafe-feature{width:52%;align-self:end;margin-top:-145px}.cafe-feature>.photo{height:350px}.cafe-layout>div:first-child .caption{max-width:45%;font-size:16px}.cafe-detail{width:45%;height:175px}.photo-meta{flex-direction:column;gap:5px}.cafe-feature .photo-meta{padding-left:0}.cafe-feature>.photo{width:100%;height:310px;margin-left:0}.section-title{display:block;margin-bottom:30px}.section-title>div{max-width:100%;padding:0}.section-title h2{margin-bottom:24px}.restaurant-gallery{grid-template-columns:1fr 1fr;gap:14px}.restaurant-gallery .photo{height:250px}.restaurant-gallery figure:nth-child(2){margin-top:35px}.restaurant-gallery figure:nth-child(3){display:none}.restaurant-gallery figcaption{font-size:17px}.project-footer{gap:20px;margin-top:25px;font-size:8px;line-height:1.5}.project-footer span:last-child{font-size:16px;text-align:right}.hotel-layout{display:flex;flex-direction:column-reverse;gap:30px}.hotel-copy{width:100%;padding:0}.hotel-images{width:100%;padding:0 45px 50px 0}.hotel-large{height:400px;width:90%}.hotel-small{height:190px;width:45%;border-width:6px}.hotel-note{font-size:21px;left:2px}.beach-gallery{grid-template-columns:1fr 1fr;gap:14px;align-items:start}.beach-gallery .photo{height:250px}.beach-gallery .beach-center{height:300px}.beach-gallery .photo:last-child{display:none}.about{padding-block:48px}.about-grid{grid-template-columns:1fr;gap:12px;margin-top:23px}.about h2{font-size:42px;letter-spacing:-1.2px;margin-bottom:12px}.about-grid>div>p{font-size:12px}.approach{grid-template-columns:1fr;gap:23px;margin-top:30px}.approach b{display:inline;margin-right:7px}.contact{padding:32px 0 36px}.contact h2{font-size:76px;margin:27px 0 30px;letter-spacing:-2px}.contact h2>span{font-size:66px;right:0;top:28px}.contact-bottom{flex-direction:column;align-items:start;gap:24px;padding-top:22px}.contact-bottom p{font-size:12px}.contact-button{padding:15px 18px;width:100%;justify-content:space-between;font-size:12px}footer{padding-top:30px;gap:25px}footer>div{font-size:10px;gap:18px}footer small{text-align:left;font-size:8px}.lightbox-top p{font-size:10px}dialog{padding:12px}.lightbox-image{gap:4px;position:relative}.lightbox-image img{width:100%}.lightbox-image>button{position:absolute;bottom:12px;width:40px;height:40px;background:#24251fcc}.previous{left:20px}.next{right:20px}.lightbox-bottom{font-size:10px;gap:15px}.lightbox-bottom p{max-width:80%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Accords colorés : des tons issus des matières et des lumières des reportages. */
.chapter em,.chapter .text-link,.chapter .draw-star,.chapter .eyebrow{color:var(--chapter-accent)}
.chapter .little-note,.chapter .caption,.chapter figcaption,.chapter .hotel-note{color:var(--chapter-accent)}
.chapter :is(a,button):focus-visible{outline-color:var(--chapter-accent)}
.chapter .photo:after{background:var(--cream);color:var(--chapter-accent)}
.chapter .text-link:hover{color:var(--ink)}
.chapter-nav a{padding-bottom:6px;border-bottom:1px solid transparent;transition:border-color .25s}
.chapter-nav a[aria-current="location"]{border-color:currentColor}

/* Mouvement : défilement natif, révélations ponctuelles, parallaxe légère. */
.scroll-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--red);z-index:50;transform:scaleX(0);transform-origin:left;pointer-events:none}
.motion-ready .reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .85s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.hero-visual{transform:translate3d(0,var(--hero-offset,0px),0)}
.seal{transform:rotate(var(--seal-angle,13deg))}
.nav-contact,.contact-button{transition:background-color .25s,color .25s,transform .25s}
.contact-button:hover{transform:translateY(-3px)}
.wordmark{transition:color .25s}.wordmark:hover{color:var(--red)}
.chapter-nav a:hover .swatch{transform:scale(1.25)}.swatch{transition:transform .25s}
.back-top{position:fixed;right:24px;bottom:24px;width:46px;height:46px;display:grid;place-items:center;border:1px solid #332e2740;border-radius:50%;background:var(--cream);color:var(--ink);font-size:23px;z-index:12;box-shadow:0 3px 18px #332e2710;transition:background-color .2s,color .2s,transform .2s}
.back-top:hover{background:var(--ink);color:var(--cream);transform:translateY(-3px)}
.back-top[hidden]{display:none}
@media(max-width:700px){.hero-visual{transform:none}.back-top{width:40px;height:40px;right:16px;bottom:16px}.motion-ready .reveal{transform:translate3d(0,16px,0)}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none}.hero-visual{transform:none}.seal{transform:rotate(13deg)}.contact-button:hover,.back-top:hover{transform:none}}

/* Mamie : le vert du carrelage, la chaleur du pain, les visages du fournil. */
.artisans{--chapter-accent:#e2bd86;background:#203f38;color:#f5eee1;padding-bottom:50px}
.forest{background:#294e43}
.artisans .chapter-copy{color:#e4e5d9}
.artisans .text-link:hover{color:#fff9ee}
.artisans .photo:after{background:#f5eee1;color:#203f38}
.artisans .project-footer{border-color:#f5eee140}
.mamie-gallery{display:grid;grid-template-columns:1.15fr .85fr 1fr;gap:22px;align-items:start}
.mamie-gallery figure,.artisan-stories figure{margin:0;min-width:0}
.mamie-gallery .photo{height:440px}
.mamie-gallery figure:nth-child(2){margin-top:65px}
.mamie-gallery figure:nth-child(2) .photo{height:330px}
.mamie-gallery figure:nth-child(3){margin-top:25px}
.mamie-gallery figure:nth-child(3) .photo{height:390px}
.mamie-gallery figcaption{font-family:var(--serif);font-size:20px;font-style:italic;margin-top:12px}
.artisan-more{border-top:1px solid #f5eee140;margin-top:45px;padding-top:30px}
.artisan-stories{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}
.artisan-stories .photo{height:240px}
.artisan-stories h3{font-family:var(--serif);font-weight:400;font-size:30px;letter-spacing:-.5px;margin:17px 0 7px;color:#f5eee1}
.artisan-stories p{font-size:11px;line-height:1.6;color:#e4e5d9;margin-bottom:18px}
.artisan-stories .text-link{font-size:11px;gap:35px}
.chapter-nav{flex-wrap:wrap}
@media(max-width:1000px){.mamie-gallery{gap:16px}.mamie-gallery .photo{height:370px}.mamie-gallery figure:nth-child(2) .photo{height:280px}.mamie-gallery figure:nth-child(3) .photo{height:330px}.artisan-stories{gap:16px}.artisan-stories .photo{height:200px}.artisan-stories h3{font-size:26px}}
@media(max-width:700px){.mamie-gallery{grid-template-columns:1fr 1fr;gap:14px}.mamie-gallery figure:first-child{grid-column:1/-1}.mamie-gallery figure:first-child .photo{height:auto;aspect-ratio:4/5}.mamie-gallery figure:nth-child(2),.mamie-gallery figure:nth-child(3){margin-top:0}.mamie-gallery figure:nth-child(2) .photo,.mamie-gallery figure:nth-child(3) .photo{height:240px}.mamie-gallery figcaption{font-size:17px}.artisans .little-note{max-width:145px}.artisan-stories{grid-template-columns:1fr;gap:28px}.artisan-stories figure{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:center}.artisan-stories .photo{height:210px}.artisan-stories h3{font-size:27px;margin-top:0}.artisan-more{margin-top:30px;padding-top:25px}.artisans{padding-bottom:35px}}

/* Une respiration vanille distingue les séries gourmandes du reportage Mamie. */
.gourmandises{--chapter-accent:#865438;background:#f0e7dc;color:#47382e;padding-block:44px 50px}
.gourmandises .artisan-more{border:0;margin:0;padding:0}
.gourmandises .artisan-stories h3{color:#47382e}
.gourmandises .artisan-stories p{color:#675344}
.gourmandises .artisan-stories .photo{height:280px}
.gourmandises [data-album="vanille"] img{object-position:50% 66%}
@media(max-width:1000px){.gourmandises .artisan-stories .photo{height:240px}}
@media(max-width:700px){.gourmandises{padding-block:30px 35px}.gourmandises .artisan-stories .photo{height:210px}}

/* Graine de Vanille : une série éditoriale à part entière. */
.vanilla{background:#b88b67}.stone{background:#776b5b}
.vanille-gallery{display:grid;grid-template-columns:1.12fr .92fr 1fr;gap:22px;align-items:start}
.vanille-gallery figure,.studio-gallery figure{margin:0;min-width:0}
.vanille-gallery .photo{height:440px}
.vanille-gallery figure:nth-child(2){margin-top:55px}
.vanille-gallery figure:nth-child(2) .photo{height:350px}
.vanille-gallery figure:nth-child(3){margin-top:15px}
.vanille-gallery figure:nth-child(3) .photo{height:400px}
.vanille-gallery figcaption{font-family:var(--serif);font-size:20px;font-style:italic;margin-top:12px}
.gourmandises .project-footer{border-color:#86543840}
.studio{--chapter-accent:#74543a;background:#e0d8ca;color:#383229}
.studio-gallery{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.studio-gallery .photo{height:460px}
.studio-gallery figure:nth-child(2){margin-top:55px}
.studio-gallery h3{font-family:var(--serif);font-size:34px;font-weight:400;letter-spacing:-.5px;margin:18px 0 8px}
.studio-gallery p{font-size:12px;line-height:1.6;margin-bottom:20px}
.chapter-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px 30px}
.chapter-nav sup{margin-left:auto}
@media(max-width:1000px){.vanille-gallery{gap:16px}.vanille-gallery .photo{height:350px}.vanille-gallery figure:nth-child(2) .photo{height:290px}.vanille-gallery figure:nth-child(3) .photo{height:325px}.studio-gallery{gap:24px}.studio-gallery .photo{height:390px}.chapter-nav{gap:20px}}
@media(max-width:700px){.chapter-nav{grid-template-columns:1fr 1fr;gap:20px}.vanille-gallery{grid-template-columns:1fr 1fr;gap:14px}.vanille-gallery figure:first-child{grid-column:1/-1}.vanille-gallery figure:first-child .photo{height:auto;aspect-ratio:4/5}.vanille-gallery figure:nth-child(2),.vanille-gallery figure:nth-child(3){margin-top:0}.vanille-gallery figure:nth-child(2) .photo,.vanille-gallery figure:nth-child(3) .photo{height:240px}.vanille-gallery figcaption{font-size:17px}.studio-gallery{grid-template-columns:1fr;gap:35px}.studio-gallery figure:nth-child(2){margin-top:0}.studio-gallery .photo{height:auto;aspect-ratio:4/5}.studio-gallery h3{font-size:30px}}

/* Diptyque : les images montent, les textes descendent, le scroll reste natif. */
.portrait-section{--scene-height:100svh;background:var(--cream)}
.portrait-intro{padding-block:65px 40px}
.portrait-intro h2{font-size:clamp(38px,4.4vw,65px);line-height:1.05;margin:25px 0 20px}
.portrait-intro>p:last-child{font-size:13px;line-height:1.8;margin-bottom:0;max-width:500px}
.portrait-stage{position:relative;display:grid;grid-template-columns:1fr 1fr}
.portrait-text-window,.portrait-image-window{min-width:0;overflow:hidden}
.portrait-panel{height:var(--scene-height);min-height:560px;position:relative}
.portrait-text{padding:45px clamp(30px,4.4vw,80px) 85px;display:flex;flex-direction:column;justify-content:space-between;gap:35px}
.portrait-text h3{font-family:var(--serif);font-size:clamp(44px,5.1vw,86px);line-height:1.03;font-weight:400;letter-spacing:-1.4px;margin:0 0 27px}
.portrait-text h3 em{color:var(--portrait-accent)}
.portrait-text>div>p{font-size:13px;line-height:1.85;max-width:340px;margin-bottom:28px}
.portrait-text .eyebrow{font-size:9px;letter-spacing:1.3px}
.portrait-text .text-link{color:var(--portrait-accent)}
.portrait-text :focus-visible{outline-color:var(--portrait-accent)}
.portrait-chef{--portrait-accent:#74482f;background:#dbcfbf;color:#332e27}
.portrait-baker{--portrait-accent:#e2bd86;background:#203f38;color:#f5eee1}
.portrait-brand{--portrait-accent:#315a4e;background:#e2e7d7;color:#293e35}
.portrait-footnote{font-family:var(--serif);font-size:21px;font-style:italic;line-height:1.25;max-width:300px}
.portrait-image{background:#dbcfbf}
.portrait-image .photo{height:100%}
.portrait-image .photo img{object-position:50% 45%}
.portrait-scroll-hint{display:none;position:absolute;left:0;bottom:22px;width:50%;padding:0 clamp(30px,4.4vw,80px);justify-content:space-between;align-items:center;font-size:8px;letter-spacing:1.2px;color:var(--hint-color,#332e27);pointer-events:none;z-index:2}
.portrait-enhanced .portrait-scroll{height:calc(var(--scene-height)*3.6)}
.portrait-enhanced .portrait-stage{position:sticky;top:0;height:var(--scene-height)}
.portrait-enhanced .portrait-panel{min-height:0;height:var(--scene-height);flex:0 0 var(--scene-height)}
.portrait-enhanced .portrait-text-track{display:flex;flex-direction:column-reverse}
.portrait-enhanced .portrait-track{will-change:transform}
.portrait-enhanced .portrait-scroll-hint{display:flex}
@media(max-width:1000px){.portrait-text{padding:35px 30px 75px}.portrait-text h3{font-size:48px}.portrait-text>div>p{font-size:12px}.portrait-footnote{font-size:19px}.portrait-scroll-hint{padding-inline:30px}.portrait-text .eyebrow{font-size:8px}}
@media(max-width:700px){.portrait-intro{padding-block:45px 28px}.portrait-intro h2{font-size:36px}.portrait-intro>p:last-child{font-size:12px}.portrait-stage{grid-template-columns:1fr}.portrait-text-window,.portrait-image-window,.portrait-track{display:contents}.portrait-text{grid-row:calc(var(--order)*2 + 1);height:auto;min-height:0;padding:32px 24px;gap:28px}.portrait-text h3{font-size:52px;margin-bottom:20px}.portrait-text>div>p{max-width:100%}.portrait-footnote{font-size:19px}.portrait-image{grid-row:calc(var(--order)*2 + 2);height:75svh;min-height:380px;max-height:720px}.portrait-image .photo img{object-position:50% 42%}.portrait-scroll-hint{display:none}}
@media(prefers-reduced-motion:reduce){.portrait-track{will-change:auto}}

/* Les reportages partagent le même diptyque, avec une palette propre à chaque image. */
.story-diptych.chapter{padding:0}
.story-diptych .portrait-text{background:var(--portrait-bg);color:var(--portrait-ink)}
.story-diptych .portrait-text .eyebrow,.story-diptych .portrait-text .text-link{color:var(--portrait-accent)}
.story-diptych .portrait-text .text-link:hover{color:var(--portrait-ink)}
.story-diptych .portrait-text .portrait-footnote{color:var(--portrait-accent)}
.story-diptych .portrait-intro h2{font-size:clamp(38px,4.4vw,65px);line-height:1.05;margin:25px 0 20px}
.story-diptych .portrait-intro>p:last-child{font-size:13px;line-height:1.8;max-width:540px}
.story-diptych .portrait-image .photo:after{background:var(--cream);color:var(--ink)}
@media(max-width:700px){.story-diptych .portrait-intro h2{font-size:36px}.story-diptych .portrait-intro>p:last-child{font-size:12px}}

.story-diptych.artisans{background:#203f38}
.story-diptych.gourmandises{background:#f0e7dc}
