:root{--paper:#faf8f2;--ink:#30261f;--red:#b83e2d;--line:#ded8cb;--muted:#796d60}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 'Avenir Next',Avenir,sans-serif}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}:focus-visible{outline:3px solid var(--red);outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:10px;background:white;z-index:10}.preview{background:#eeeae0;padding:9px 5%;display:flex;justify-content:center;gap:30px;font-size:10px;letter-spacing:.06em}.preview a{text-decoration:underline}header{max-width:1440px;margin:auto;padding:27px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:750;letter-spacing:.12em;color:var(--red)}nav{display:flex;gap:28px;font-size:13px}nav a:hover,.text-link:hover{color:var(--red)}.nav-contact{font-size:12px;border-bottom:1px solid var(--red);padding-bottom:5px}main{max-width:1440px;margin:auto;padding:0 5%}h1,h2,h3{font-family:'Iowan Old Style',Palatino,Georgia,serif;font-weight:500;line-height:1.06;letter-spacing:-.04em}h1{font-size:clamp(54px,6.8vw,94px);margin:25px 0}h2{font-size:clamp(34px,3.7vw,51px);margin:12px 0 24px}h3{font-size:26px;letter-spacing:-.025em}em{color:var(--red);font-weight:400}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.18em;color:var(--red);margin:0 0 20px}.hero{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7%;padding:55px 0 65px}.lead{font-size:18px;color:var(--muted);max-width:390px;margin:0 0 30px}.button{display:inline-flex;gap:32px;align-items:center;justify-content:space-between;background:var(--red);color:#fff;border:1px solid var(--red);border-radius:3px;padding:14px 20px;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s,transform .2s}.button:hover{background:#963020;transform:translateY(-2px)}.button span{font-size:19px}.signature{margin-top:44px;border-top:1px solid var(--line);padding-top:18px;max-width:280px}.signature span{font:italic 25px 'Iowan Old Style',Georgia,serif;display:block}.signature small{color:var(--muted);font-size:11px}.hero-photo{position:relative;display:block;height:590px;overflow:hidden;border-radius:3px}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 55%;transition:transform .6s}.hero-photo:hover img{transform:scale(1.025)}.photo-caption{position:absolute;inset:auto 0 0;padding:60px 28px 24px;background:linear-gradient(transparent,#22180bbb);color:white}.photo-caption span{font-size:9px;letter-spacing:.17em}.photo-caption h2{font-size:30px;margin:12px 0}.photo-caption p{font-size:12px;margin:0}.photo-note{position:absolute;top:14px;right:14px;background:#faf8f2dd;padding:3px 9px;font-size:9px}h3 b,.photo-caption b{float:right;font:20px Avenir,sans-serif}.recipes{padding:55px 0 60px;border-top:1px solid var(--line)}.section-title{display:flex;justify-content:space-between;align-items:end;gap:25px}.section-title p:not(.eyebrow){color:var(--muted);font-size:14px;margin-bottom:27px}.filters{display:flex;gap:24px;border-bottom:1px solid var(--line);margin:10px 0 30px;flex-wrap:wrap}.filters button{background:none;border:0;border-bottom:2px solid transparent;padding:10px 0 14px;font-size:12px;color:var(--muted);cursor:pointer}.filters button[aria-pressed=true]{color:var(--red);border-color:var(--red)}.recipe-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:27px}.recipe[hidden]{display:none}.food{height:235px;position:relative;overflow:hidden;border-radius:3px}.food img,.food svg{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s}.food img{object-position:center 66%}.recipe:hover .food>img,.recipe:hover .food>svg{transform:scale(1.025)}.food>span{position:absolute;bottom:12px;left:12px;background:var(--paper);font-size:10px;padding:4px 10px}.recipe h3{margin:20px 0 10px}.recipe p{color:var(--muted);font-size:13px;margin:0}.note{font-size:10px;color:var(--muted);line-height:1.7;margin-top:22px}.duo{display:grid;grid-template-columns:1fr 1fr;background:#efece2;margin:20px 0 0}.duo-names{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:55px 25px;border-right:1px solid #d8d0c0;color:var(--red)}.duo-names span{font:clamp(65px,8vw,105px)/1 'Iowan Old Style',Georgia,serif;letter-spacing:-.07em}.duo-names i{font:italic 48px Georgia;margin:0}.duo-names small{font-size:9px;letter-spacing:.16em;margin-top:35px}.duo-copy{padding:60px 15%}.duo-copy h2{font-size:43px}.duo-copy>p:not(.eyebrow):not(.note){color:var(--muted);font-size:15px}.text-link{font-size:12px;border-bottom:1px solid var(--red);display:inline-flex;gap:45px;padding:8px 0}.collaborations{display:grid;grid-template-columns:1.1fr 1fr;gap:10%;align-items:center;padding:85px 0}.collaborations>div>p:not(.eyebrow):not(.note){color:var(--muted);font-size:17px;margin:0 0 25px}.newsletter{border-top:1px solid var(--line);padding:65px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:10%}.newsletter h2{font-size:39px}.newsletter p{color:var(--muted);font-size:14px}.newsletter label{font-size:12px;display:block}.newsletter input{width:100%;padding:12px 0;border:0;border-bottom:1px solid #a99c8c;background:none;border-radius:0;margin:8px 0 16px}.form-row{display:flex;align-items:center;gap:12px;margin-bottom:22px}select{background:transparent;border:1px solid var(--line);padding:8px;font-size:12px}.newsletter .note{font-size:10px}.newsletter .button{width:100%}footer{max-width:1440px;margin:auto;padding:35px 5% 20px;border-top:1px solid var(--line);display:flex;align-items:center;flex-wrap:wrap;gap:25px}footer p{font-size:12px;color:var(--muted)}footer>a:last-of-type{font-size:12px;margin-left:auto}footer small{width:100%;font-size:9px;color:var(--muted)}@media(max-width:900px){.hero{gap:5%}.hero-photo{height:520px}.nav-contact{display:none}nav{gap:18px}.food{height:190px}.duo-copy{padding:45px 10%}.duo-copy h2{font-size:35px}}@media(max-width:620px){header{flex-wrap:wrap;padding:20px 5%;gap:14px}nav{width:100%;justify-content:space-between;font-size:11px;gap:9px}.preview{gap:10px;flex-wrap:wrap;font-size:9px}.hero{grid-template-columns:1fr;padding:35px 0;gap:28px}h1{font-size:60px}.hero-photo{height:470px}.signature{margin-top:25px}.section-title{display:block}.section-title p:not(.eyebrow){margin-top:0}.recipes{padding:35px 0}.filters{gap:17px}.filters button{font-size:11px}.recipe-grid{grid-template-columns:1fr;gap:30px}.food{height:260px}.duo,.collaborations,.newsletter{grid-template-columns:1fr}.duo-names{border-right:0;border-bottom:1px solid #d8d0c0;padding:35px}.duo-names span{font-size:76px}.duo-copy{padding:35px 8%}.collaborations{padding:55px 0;gap:15px}.newsletter{padding:45px 0;gap:25px}.newsletter h2{font-size:35px}footer{gap:15px}footer .brand{font-size:24px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* v19 : illustration gouache choisie pour le duo. */
.duo-illustration{position:relative;min-width:0;align-self:stretch;overflow:hidden;background:#faf8f2}.duo-illustration img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.duo-illustration>span{position:absolute;bottom:12px;left:16px;font-size:9px;background:#faf8f2dc;padding:3px 8px;color:#796d60}@media(max-width:620px){.duo-illustration{aspect-ratio:1}.duo-illustration img{height:100%}}

/* Accueil v29 : sélection réelle et accès catalogue. */
.recipe-grid{row-gap:38px}.catalogue-link{margin-top:12px}.food img{object-position:center}

/* v32 : duo cohérent avec les illustrations du kit média. */
.duo-illustration img{object-fit:contain;object-position:center}.duo-illustration{background:#faf8f2}
