.save{font:bold 1rem var(--serif);display:grid;place-items:center;z-index:2}
.save,.recipe-actions .pin,.pin-gallery{display:none!important}
.save:hover{background:#bd1e2d;color:#fff;transform:translateY(-2px)}
.pin-gallery{padding:8rem 7vw;background:#201b17;color:var(--cream)}
.pin-gallery header{max-width:760px;margin-bottom:3rem}
.pin-gallery h2{font-size:clamp(3rem,5vw,5.5rem)}
.pin-gallery header>p:last-child{color:#b8aea5}
.pin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.pin-card{position:relative;overflow:hidden;display:block}
.pin-card img{aspect-ratio:2/3;transition:transform .6s ease}
.pin-card:hover img{transform:scale(1.02)}
.pin-card span{position:absolute;left:1rem;right:1rem;bottom:1rem;background:#bd1e2d;color:#fff;padding:.85rem 1rem;text-align:center;text-transform:uppercase;font-size:.68rem;letter-spacing:.12em}
@media(max-width:850px){.hero-image img{object-position:66% center}.pin-gallery{padding:6rem 6vw}}
@media(max-width:560px){.pin-grid{grid-template-columns:1fr}.hero-image{min-height:52vh}.hero-image img{object-position:63% center}}
.collection{padding:4rem 6vw 9rem}.collection>.breadcrumb{margin-bottom:4rem}.collection-head{max-width:850px;margin:0 auto 5rem;text-align:center}.collection-head h1{font-size:clamp(4rem,8vw,8rem);letter-spacing:-.05em}.collection-head>p:last-child{max-width:620px;margin:2rem auto 0;color:#665c53;font-size:1.08rem}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3rem 2rem}.collection-card img{aspect-ratio:4/3}.collection-card h2{font-size:clamp(1.8rem,2.8vw,3rem);margin:.35rem 0 1rem}.collection-card div>p:not(.eyebrow){color:#665c53}.collection-card .text-link{display:inline-block;margin-top:.5rem}@media(max-width:900px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.collection{padding:3rem 5vw 6rem}.collection-grid{grid-template-columns:1fr}.collection-head{margin-bottom:3rem}.collection-head h1{font-size:2.6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.hero-image img,.feature-card .media img,.pin-card img{transition:none}}

/* Mobile fit: keep long French titles and editorial blocks inside the viewport. */
@media(max-width:560px){
  html,body{max-width:100%;overflow-x:clip}
  .hero-copy h1{font-size:clamp(3rem,15vw,3.55rem);line-height:.98;overflow-wrap:anywhere}
  .hero-copy{min-width:0}
  .meta{max-width:100%;flex-wrap:wrap}
  .section-head h2,.categories h2,.saved h2,.manifesto h2,.newsletter h2{overflow-wrap:anywhere}
  .category-list a{width:100%;min-width:0;gap:.45rem;font-size:clamp(1.65rem,8.7vw,2.1rem);flex-direction:column;align-items:flex-start}
  .category-list span{flex:0 0 auto;text-align:left}
  .quick-list a{grid-template-columns:2rem minmax(0,1fr)}
  .quick-list strong{min-width:0;overflow-wrap:anywhere}
  .saved li a{grid-template-columns:2rem minmax(0,1fr) auto;gap:.5rem}
  .newsletter input{min-width:0;width:100%}
  footer{grid-template-columns:minmax(0,1fr) auto;gap:2rem 1rem}
  footer .wordmark{font-size:2.5rem}
  footer p,footer small{min-width:0;overflow-wrap:anywhere}

  .recipe-intro{padding-inline:5vw}
  .recipe-intro h1{font-size:clamp(3rem,16vw,3.6rem);line-height:1;overflow-wrap:anywhere;word-break:normal}
  .recipe-intro h1 em{overflow-wrap:anywhere}
  .recipe-actions a,.recipe-actions button{width:100%}
  .recipe-body>*{min-width:0}
  .method li{grid-template-columns:2.25rem minmax(0,1fr);gap:1rem}
  .notes-grid article{min-width:0;padding:2.5rem 1.4rem}
  .notes-grid h3{font-size:2rem;overflow-wrap:anywhere}
  .essentials>*{min-width:0}
  .essentials a{grid-template-columns:2rem minmax(0,1fr)}
  .related h3{overflow-wrap:anywhere}
}

@media(max-width:360px){
  .site-header{padding-inline:5vw}
  .wordmark{font-size:1.75rem}
  .hero-copy h1{font-size:2.9rem}
  .category-list a{font-size:1.62rem}
  .category-list span{font-size:.58rem;letter-spacing:.08em}
  .recipe-intro h1{font-size:3rem}
}

/* Confidentialité : reprend la palette et la typographie existantes. */
.legal-page{max-width:920px;margin:0 auto;padding:5rem 6vw 9rem}
.legal-page .breadcrumb{margin-bottom:3rem}
.legal-page>header{margin-bottom:4rem}
.legal-page>header h1{font-size:clamp(3.5rem,8vw,7rem);letter-spacing:-.045em;line-height:.96}
.legal-page>header p:last-child{max-width:720px;margin-top:1.5rem;color:#665c53;font-size:1.08rem;line-height:1.7}
.legal-content{display:grid;gap:3rem}
.legal-content section{border-top:1px solid rgba(32,27,23,.18);padding-top:2rem}
.legal-content h2{font-size:clamp(2rem,4vw,3.2rem);margin-bottom:1rem}
.legal-content h3{font-size:1.35rem;margin:1.6rem 0 .6rem}
.legal-content p,.legal-content li{color:#514840;line-height:1.75}
.legal-content ul{padding-left:1.25rem;display:grid;gap:.65rem}
.legal-content a{text-decoration:underline;text-underline-offset:.2em}
.legal-table{width:100%;border-collapse:collapse;margin-top:1.25rem}
.legal-table th,.legal-table td{padding:1rem;border:1px solid rgba(32,27,23,.16);text-align:left;vertical-align:top;line-height:1.55}
.legal-table th{background:rgba(32,27,23,.05)}
.footer-legal{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}
footer:has(.footer-legal){grid-template-columns:1fr 1fr auto auto}
.footer-legal a,.footer-legal button{font:inherit;color:inherit;text-decoration:underline;text-underline-offset:.2em;background:none;border:0;padding:0;cursor:pointer}
.consent-banner{position:fixed;z-index:9999;left:1rem;right:1rem;bottom:1rem;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.25rem;align-items:center;max-width:820px;margin:auto;padding:.9rem 1rem;background:#201b17;color:#f5efe7;border:1px solid rgba(255,255,255,.18);box-shadow:0 14px 45px rgba(0,0,0,.25)}
.consent-banner p{margin:0;font-size:.82rem;line-height:1.45}
.consent-banner .eyebrow{margin-bottom:.2rem;color:#dfc8ad;font-size:.56rem}
.consent-banner a{display:inline-block;margin-top:.35rem;color:#f5efe7;font-size:.72rem;text-decoration:underline;text-underline-offset:.2em}
.consent-actions{display:flex;gap:.75rem}
.consent-actions button{min-width:7rem;padding:.68rem .8rem;border:1px solid #f5efe7;background:transparent;color:#f5efe7;font:600 .65rem var(--sans);letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.consent-actions .consent-accept{background:#bd1e2d;border-color:#bd1e2d}
.consent-preferences{max-width:920px;grid-template-columns:minmax(210px,.8fr) minmax(350px,1.45fr);align-items:start}
.consent-categories{display:grid;gap:.65rem}
.consent-category{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.8rem 0;border-bottom:1px solid rgba(255,255,255,.16)}
.consent-category:first-child{padding-top:0}
.consent-category strong,.consent-category small{display:block}
.consent-category small{margin-top:.15rem;color:#c9c0b8;line-height:1.4}
.consent-category>span{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:#dfc8ad}
.consent-category input{position:absolute;opacity:0;pointer-events:none}
.consent-category i{position:relative;width:42px;height:23px;border:1px solid #a89d93;border-radius:30px;cursor:pointer}
.consent-category i:after{content:"";position:absolute;width:15px;height:15px;left:3px;top:3px;border-radius:50%;background:#f5efe7;transition:.2s}
.consent-category input:checked+i{background:#bd1e2d;border-color:#bd1e2d}
.consent-category input:checked+i:after{transform:translateX(19px)}
.consent-category.is-disabled{opacity:.62}
.consent-preference-actions{grid-column:2;display:flex;gap:.75rem;justify-content:flex-end}
.consent-preference-actions button{padding:.8rem 1rem;border:1px solid #f5efe7;background:transparent;color:#f5efe7;font:600 .68rem var(--sans);letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.consent-preference-actions .consent-accept{background:#bd1e2d;border-color:#bd1e2d}
.consent-policy-link{grid-column:2;justify-self:end;margin-top:-1rem!important;font-size:.7rem}
@media(max-width:700px){
  .legal-page{padding-top:3rem}
  .legal-table{display:block;overflow-x:auto}

  /* La bannière reste au-dessus du badge Netlify et de la zone sûre mobile. */
  .consent-banner{z-index:2147483646;grid-template-columns:1fr;gap:.75rem;left:.55rem;right:.55rem;bottom:calc(5.75rem + env(safe-area-inset-bottom));padding:.8rem}
  .consent-actions{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
  .consent-actions button{min-width:0;padding:.65rem .5rem}
  .consent-preferences{max-height:calc(100vh - 7rem - env(safe-area-inset-bottom));overflow:auto}
  .consent-preference-actions{grid-column:1;display:grid;grid-template-columns:1fr;justify-content:stretch}
  .consent-policy-link{grid-column:1;justify-self:start;margin-top:0!important}

  /* Footer mobile : une seule colonne, sans chevauchement possible. */
  footer,footer:has(.footer-legal){position:relative;clear:both;isolation:isolate;width:100%;max-width:100%;overflow:hidden;padding:2.25rem 5vw 1rem;display:flex;flex-direction:column;align-items:flex-start;gap:1.15rem}
  footer .wordmark{display:block;max-width:100%;font-size:1.9rem;line-height:1;white-space:nowrap}
  footer p{font-size:1.2rem;line-height:1.15}
  footer>div:not(.footer-legal){font-size:.6rem;gap:.55rem}
  footer .footer-legal{width:100%;flex-direction:row;align-items:center;gap:.55rem 1rem;font-size:.6rem}
  footer small{width:100%;padding-top:.9rem;padding-bottom:4.75rem;font-size:.7rem}

  /* Recettes : proportions adaptées aux petits écrans et aux navigateurs intégrés. */
  .recipe{width:100%;max-width:100%;overflow:hidden}
  .recipe-intro{padding:2.75rem 5vw 3rem}
  .recipe-intro .breadcrumb{margin-bottom:2rem;overflow-wrap:anywhere}
  .recipe-intro h1{font-size:clamp(2.55rem,12vw,3.35rem);line-height:1.02}
  .recipe-intro .dek{margin:1.5rem auto;font-size:1.08rem;line-height:1.5}
  .recipe-hero{width:100%;height:auto;aspect-ratio:4/3;margin:0;overflow:hidden}
  .recipe-hero img{width:100%;height:100%;object-fit:cover}
  .recipe-hero figcaption{max-width:82%;padding:.65rem .75rem;font-size:.8rem}
  .recipe-body{padding:4.5rem 6vw;gap:4.5rem}
  .recipe-body h2,.cook-note h2,.essentials h2,.related>h2{font-size:clamp(2.35rem,11vw,3.2rem);overflow-wrap:anywhere}
  .cook-note,.essentials{padding:4.25rem 6vw;gap:2rem}
  .related{padding:4.5rem 6vw}
  .related>div{gap:2.5rem}
  .related a img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}

  /* Collections / catégories : les images ne doivent jamais prendre la hauteur du texte. */
  .collection{width:100%;max-width:100%;overflow:hidden;padding:2.75rem 5vw 4.5rem}
  .collection>.breadcrumb{margin-bottom:2rem;overflow-wrap:anywhere}
  .collection-head{margin-bottom:2.75rem}
  .collection-head h1{font-size:clamp(2.45rem,12vw,3.25rem);line-height:1;overflow-wrap:anywhere}
  .collection-head>p:last-child{margin-top:1.25rem;font-size:1rem;line-height:1.55}
  .collection-grid{grid-template-columns:1fr;gap:3rem;width:100%}
  .collection-card,.collection-card a,.collection-card div{display:block;width:100%;min-width:0;max-width:100%}
  .collection-card img{display:block;width:100%;height:auto!important;aspect-ratio:4/3;object-fit:cover}
  .collection-card h2{font-size:clamp(1.85rem,9vw,2.35rem);line-height:1.04;overflow-wrap:anywhere}
  .collection-card div>p:not(.eyebrow){line-height:1.55}
}
