/* Meal-plan library. Existing Zimmer type, colours and recipe photography. */
.mp2-page,.mp2-library { max-width:1180px; color:var(--deep,#3b2412); }
.mp2-back { display:inline-block; font-size:.86rem; color:var(--muted,#695d51); text-decoration:none; margin:0 0 26px; }
.mp2-back:hover { text-decoration:underline; text-underline-offset:4px; }
.mp2-heading { display:grid; grid-template-columns:minmax(0,1fr) 230px; gap:48px; align-items:center; padding-bottom:36px; border-bottom:1px solid var(--hairline-strong,#d6cbbb); }
.mp2-heading h1 { font-size:clamp(2rem,3.65vw,3.15rem); line-height:1.13; letter-spacing:-.035em; margin:10px 0 17px; max-width:790px; }
.mp2-facts { display:flex; flex-wrap:wrap; gap:6px 10px; font-size:.87rem; margin:0 0 16px; color:var(--muted,#695d51); }
.mp2-facts > span { color:#a08d78; }
.mp2-idea { font-size:1.04rem; line-height:1.65; max-width:710px; margin:0; }
.mp2-heading-pictures { display:grid; grid-template-columns:1fr 1fr; gap:8px; transform:rotate(3deg); }
.mp2-heading-pictures img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:5px; }
.mp2-heading-pictures img:first-child { grid-column:1/-1; aspect-ratio:2.05; }
.mp2-actions { display:flex; align-items:center; gap:22px; flex-wrap:wrap; margin-top:23px; }
.mp2-action { appearance:none; display:inline-flex; align-items:center; justify-content:center; background:var(--deep,#3b2412); border:1px solid var(--deep,#3b2412); border-radius:7px; padding:12px 17px; color:var(--cream,#f7f2ee); font:600 .88rem/1.35 var(--sans,sans-serif); text-decoration:none; cursor:pointer; }
.mp2-action:hover { background:#553720; }
.mp2-text-button { appearance:none; border:0; padding:10px 0; color:var(--deep,#3b2412); background:transparent; font:500 .85rem/1.4 var(--sans,sans-serif); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.mp2-page a:focus-visible,.mp2-page button:focus-visible,.mp2-page summary:focus-visible,.mp2-page input:focus-visible,.mp2-plan-link:focus-visible { outline:3px solid var(--leaf,#4f7a4a); outline-offset:4px; }
.mp2-workbench { display:grid; grid-template-columns:minmax(0,1fr) 270px; align-items:start; gap:48px; padding-top:34px; scroll-margin-top:24px; }
.mp2-section-title { margin:0 0 21px; }
.mp2-section-title h2 { font-size:1.6rem; line-height:1.2; margin:0 0 7px; }
.mp2-section-title p { margin:0; color:var(--muted,#695d51); font-size:.87rem; line-height:1.5; }
.mp2-day { border-bottom:1px solid var(--hairline-strong,#d6cbbb); scroll-margin-top:24px; }
.mp2-day:first-of-type { border-top:1px solid var(--hairline-strong,#d6cbbb); }
.mp2-day > summary { display:flex; gap:18px; align-items:center; list-style:none; cursor:pointer; padding:19px 6px 19px 0; }
.mp2-day > summary::-webkit-details-marker,.mp2-shopping > summary::-webkit-details-marker { display:none; }
.mp2-day > summary:hover .mp2-day-title { color:var(--terra,#ae5a30); }
.mp2-day > summary img { flex:0 0 72px; width:72px; height:72px; object-fit:cover; border-radius:6px; }
.mp2-day-copy { display:block; flex:1; min-width:0; }
.mp2-day-meta { display:flex; align-items:center; justify-content:space-between; gap:15px; color:var(--muted,#695d51); font-size:.75rem; line-height:1.35; }
.mp2-day-meta > span { white-space:nowrap; }
.mp2-day-title { display:block; font:600 1.14rem/1.3 var(--serif,Georgia,serif); margin:5px 0; }
.mp2-day-note { display:block; font-size:.79rem; line-height:1.5; color:var(--muted,#695d51); }
.mp2-chevron { display:flex; flex:none; align-items:center; justify-content:center; color:#887058; }
.mp2-chevron svg { transition:transform 160ms ease; }
.mp2-day[open] > summary .mp2-chevron svg,.mp2-shopping[open] > summary .mp2-chevron svg { transform:rotate(90deg); }
.mp2-day[open] > summary { border-bottom:1px solid var(--hairline,#e4dacd); }
.mp2-day[open] > summary .mp2-day-title { color:var(--terra,#ae5a30); }
.mp2-recipe { padding:22px 0 28px; }
.mp2-recipe-top { display:flex; justify-content:space-between; align-items:baseline; gap:12px; flex-wrap:wrap; font-size:.79rem; line-height:1.5; }
.mp2-recipe-top p { margin:0; }
.mp2-recipe-top a { color:var(--muted,#695d51); text-underline-offset:3px; }
.mp2-overview { font-size:.93rem; line-height:1.7; margin:18px 0 25px; }
.mp2-recipe-columns { display:grid; grid-template-columns:minmax(170px,.65fr) minmax(0,1fr); gap:32px; margin-top:26px; }
.mp2-recipe-columns h3 { font:600 1.3rem/1.25 var(--serif,Georgia,serif); margin:0 0 18px; }
.mp2-ingredients h4 { font-size:.74rem; letter-spacing:.035em; text-transform:uppercase; font-weight:600; margin:22px 0 9px; color:#6d604f; }
.mp2-ingredients ul { list-style:none; padding:0; margin:0; }
.mp2-ingredients li { padding:8px 0; border-bottom:1px solid var(--hairline,#e7ded4); font-size:.84rem; line-height:1.55; overflow-wrap:anywhere; }
.mp2-ingredients section:first-of-type h4 { margin-top:0; }
.mp2-method ol { padding:0; margin:0; list-style:none; counter-reset:recipe-step; }
.mp2-method ol > li { counter-increment:recipe-step; position:relative; padding:0 0 20px 30px; }
.mp2-method ol > li::before { content:counter(recipe-step,decimal-leading-zero); position:absolute; left:0; top:1px; color:#967b5f; font-size:.7rem; font-weight:600; }
.mp2-method li > p { font-size:.88rem; line-height:1.7; margin:0; }
.mp2-tip { margin-top:10px; border-left:2px solid #bba786; padding-left:12px; }
.mp2-tip summary { font-size:.78rem; color:#765a3e; cursor:pointer; padding:4px 0; }
.mp2-tip p { font-size:.82rem; line-height:1.6; margin:8px 0 0; color:#66543e; }
.mp2-day-prep { border-left:3px solid var(--leaf,#4f7a4a); padding:3px 0 3px 16px; margin-top:22px; }
.mp2-day-prep strong { font-size:.82rem; }
.mp2-day-prep p { font-size:.87rem; line-height:1.6; margin:5px 0; }
.mp2-thread { background:#eee8db; border-radius:4px; padding:26px 23px; }
.mp2-thread > .eyebrow { font-size:.63rem; line-height:1.55; margin:0; }
.mp2-thread h2 { font-size:1.5rem; line-height:1.22; margin:10px 0 23px; }
.mp2-thread ol { list-style:none; padding:0; margin:0; }
.mp2-thread li { display:flex; gap:13px; position:relative; padding:0 0 21px; }
.mp2-thread li:not(:last-child)::before { content:""; position:absolute; left:8px; top:22px; bottom:3px; width:1px; background:#d0c2a9; }
.mp2-thread-number { flex:0 0 18px; font-size:.65rem; font-weight:600; color:#8a7254; line-height:1.8; }
.mp2-thread h3 { font-size:.83rem; margin:0 0 6px; line-height:1.4; }
.mp2-thread li p { font-size:.8rem; line-height:1.65; margin:0; color:#6b5b46; }
.mp2-closing-note { border-top:1px solid #d7cab5; padding-top:15px; margin:0; font-size:.74rem; line-height:1.6; color:#6b5b46; }
.mp2-source-links { margin:12px 0 0; font-size:.72rem; line-height:1.6; }
.mp2-source-links a { color:#6b5b46; text-underline-offset:3px; }
.mp2-reuse-label { color:#6a734b; font-size:.78rem; }
.mp2-shopping { margin-top:40px; border:1px solid #cabead; border-radius:7px; background:#fffcf7; scroll-margin-top:20px; }
.mp2-shopping > summary { display:flex; gap:18px; align-items:center; list-style:none; cursor:pointer; padding:26px 28px; }
.mp2-shopping > summary > span:first-child { flex:1; }
.mp2-shopping .eyebrow { display:block; font-size:.66rem; color:#78644d; }
.mp2-shopping-title { display:block; font-size:1.8rem; line-height:1.2; margin:6px 0 7px; }
.mp2-shopping-sub { display:block; font-size:.85rem; line-height:1.5; color:var(--muted,#695d51); }
.mp2-shopping-count { font-size:.75rem; color:#78644d; white-space:nowrap; }
.mp2-shopping-body { padding:0 28px 25px; }
.mp2-shopping-tools { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; padding:20px 0; border-top:1px solid var(--hairline,#e7ded4); }
.mp2-shopping-tools [role=status] { width:100%; margin:0; font-size:.83rem; }
.mp2-shopping-tools [role=status]:empty { display:none; }
.mp-copy-fallback { display:block; box-sizing:border-box; width:100%; min-height:180px; padding:12px; border:1px solid #cabead; border-radius:4px; background:#fff; color:var(--deep,#3b2412); font:inherit; font-size:.85rem; line-height:1.6; resize:vertical; }
.mp2-shopping-groups { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.mp2-shopping-groups h3 { font-size:.87rem; margin:4px 0 13px; }
.mp2-checklist { margin:0; padding:0; list-style:none; }
.mp2-checklist label { display:flex; align-items:flex-start; gap:10px; padding:10px 0; border-bottom:1px solid #e9e2d8; font-size:.83rem; line-height:1.55; cursor:pointer; }
.mp2-checklist input { flex:none; width:18px; height:18px; margin:2px 0 0; accent-color:var(--leaf,#4f7a4a); }
.mp2-checklist input:checked + span { color:#928779; text-decoration:line-through; }
.mp2-small { font-size:.76rem; line-height:1.6; color:#786c5b; margin:22px 0 15px; }
.mp2-app { display:flex; align-items:center; justify-content:space-between; gap:32px; padding:33px 0 0; margin-top:32px; border-top:1px solid var(--hairline-strong,#d6cbbb); }
.mp2-app .eyebrow { font-size:.65rem; }
.mp2-app h2 { font-size:1.5rem; line-height:1.3; margin:7px 0; }
.mp2-app p:not(.eyebrow) { max-width:510px; font-size:.84rem; line-height:1.6; margin:0; color:var(--muted,#695d51); }
.mp2-app a { font-size:.84rem; line-height:1.5; max-width:220px; color:var(--deep,#3b2412); text-underline-offset:4px; }
.mp2-library .ed-intro { max-width:680px; margin-bottom:32px; }
.mp2-library .ed-intro h1 { font-size:clamp(2.15rem,4vw,3.3rem); margin:10px 0 15px; }
.mp2-library .ed-intro > p:not(.eyebrow) { font-size:1rem; line-height:1.7; }
.mp2-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.mp2-plan-card { border:1px solid var(--hairline-strong,#d6cbbb); border-radius:8px; overflow:hidden; background:#fcf8f0; min-width:0; }
.mp2-plan-link { display:block; height:100%; color:inherit; text-decoration:none; }
.mp2-card-pictures { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:3px; background:#e7dccf; }
.mp2-card-pictures img { display:block; width:100%; height:162px; object-fit:cover; }
.mp2-card-pictures img:only-child { grid-column:1/-1; }
.mp2-card-copy { padding:24px 26px 23px; }
.mp2-card-kicker { display:flex; gap:11px; text-transform:uppercase; font-size:.65rem; letter-spacing:.095em; font-weight:600; color:#82694e; line-height:1.4; margin:0 0 11px; }
.mp2-card-kicker > span { color:#a18f78; }
.mp2-card-copy h2 { font-size:1.65rem; line-height:1.25; letter-spacing:-.02em; margin:0 0 12px; }
.mp2-card-copy > p:not(.mp2-card-kicker):not(.mp2-card-facts) { font-size:.91rem; line-height:1.65; color:var(--muted,#695d51); margin:0 0 16px; }
.mp2-card-copy .mp2-card-facts { font-size:.78rem; line-height:1.6; color:#746550; margin:0 0 19px; }
.mp2-card-action { display:flex; align-items:center; justify-content:space-between; padding-top:15px; border-top:1px solid #dfd3c3; font-size:.83rem; font-weight:600; }
.mp2-card-action > span { font-size:1.2rem; font-weight:400; }
.mp2-plan-link:hover .mp2-card-action,.mp2-plan-link:hover h2 { color:var(--terra,#ae5a30); }
@media(min-width:1200px) { .mp2-thread { position:sticky; top:25px; } }
@media(max-width:1000px) {
 .mp2-heading { grid-template-columns:minmax(0,1fr) 180px; gap:30px; }
 .mp2-workbench { grid-template-columns:minmax(0,1fr) 230px; gap:28px; }
 .mp2-recipe-columns { grid-template-columns:1fr; gap:28px; }
 .mp2-ingredients ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 22px; }
 .mp2-shopping-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
 .mp2-heading { grid-template-columns:1fr; gap:0; padding-bottom:26px; }
 .mp2-heading-pictures { display:none; }
 .mp2-heading h1 { font-size:2.1rem; }
 .mp2-workbench { display:flex; flex-direction:column; gap:28px; padding-top:27px; }
 .mp2-days,.mp2-thread { width:100%; box-sizing:border-box; }
 .mp2-thread { padding:22px; }
 .mp2-thread h2 { margin-bottom:18px; }
 .mp2-thread ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
 .mp2-thread li { padding-bottom:13px; gap:8px; }
 .mp2-thread li::before { display:none; }
 .mp2-thread-number { flex-basis:15px; }
 .mp2-day > summary { gap:14px; padding-block:17px; }
 .mp2-day > summary img { flex-basis:62px; width:62px; height:62px; }
 .mp2-day-title { font-size:1.1rem; }
 .mp2-day-note { font-size:.78rem; }
 .mp2-recipe-columns { grid-template-columns:1fr; }
 .mp2-shopping { margin-top:28px; }
 .mp2-shopping > summary { padding:23px 19px; gap:10px; }
 .mp2-shopping-title { font-size:1.55rem; }
 .mp2-shopping-count { display:none; }
 .mp2-shopping-body { padding:0 19px 22px; }
 .mp2-app { display:block; }
 .mp2-app a { display:inline-block; margin-top:18px; max-width:none; }
 .mp2-plan-grid { gap:20px; }
 .mp2-card-copy { padding:20px; }
 .mp2-card-copy h2 { font-size:1.45rem; }
 .mp2-card-pictures img { height:125px; }
}
@media(max-width:580px) {
 .mp2-plan-grid { grid-template-columns:1fr; }
 .mp2-card-pictures img { height:142px; }
 .mp2-heading h1 { font-size:1.95rem; }
 .mp2-facts { font-size:.8rem; gap:5px 7px; }
 .mp2-idea { font-size:.96rem; }
 .mp2-actions { gap:15px; margin-top:20px; }
 .mp2-day > summary { gap:12px; }
 .mp2-day-meta { font-size:.72rem; }
 .mp2-day-title { font-size:1.05rem; }
 .mp2-thread ol { grid-template-columns:1fr; gap:2px; }
 .mp2-thread li::before { display:block; left:7px; }
 .mp2-thread li { padding-bottom:20px; }
 .mp2-ingredients ul,.mp2-shopping-groups { grid-template-columns:1fr; }
 .mp2-method li > p { font-size:.95rem; }
 .mp2-ingredients li,.mp2-checklist label { font-size:.9rem; }
 .mp2-shopping-sub { font-size:.81rem; }
 .mp2-shopping-title { font-size:1.5rem; }
}
@media(prefers-reduced-motion:reduce) { .mp2-chevron svg { transition:none; } }
@media print {
 .ed-header,.ed-footer,[data-redaktion],.mp2-back,.mp2-actions,.mp2-heading-pictures,.mp2-shopping-tools,.mp2-app,.mp2-close-recipe,.mp2-recipe-top a,.mp2-chevron { display:none!important; }
 .mp2-page { width:100%; max-width:none; margin:0; padding:0; }
 .mp2-heading { display:block; padding-bottom:12px; }
 .mp2-heading h1 { font-size:22pt; }
 .mp2-facts,.mp2-idea { font-size:9pt; }
 .mp2-workbench { display:block; padding-top:16px; }
 .mp2-day > summary { padding:10px 0; }
 .mp2-day > summary img { width:42px; height:42px; flex-basis:42px; }
 .mp2-day-title { font-size:12pt; }
 .mp2-day-meta,.mp2-day-note { font-size:8pt; }
 .mp2-recipe,.mp2-shopping { display:none!important; }
 .mp2-thread { background:none; padding:16px 0; }
 .mp2-thread h2 { font-size:14pt; margin:8px 0 12px; }
 .mp2-thread ol { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
 .mp2-thread li::before { display:none; }
 .mp2-thread li { padding-bottom:8px; }
 .mp2-thread h3,.mp2-thread li p,.mp2-closing-note { font-size:8pt; }
 body[data-plan-print="shopping"] .mp2-workbench,body[data-plan-print="shopping"] .mp2-heading { display:none!important; }
 body[data-plan-print="shopping"] .mp2-shopping { display:block!important; border:0; margin:0; }
 body[data-plan-print="shopping"] .mp2-shopping > summary { padding:0 0 10px; }
 body[data-plan-print="shopping"] .mp2-shopping-body { padding:0; }
 body[data-plan-print="shopping"] .mp2-shopping-groups { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
 .mp2-checklist label { padding:5px 0; font-size:9pt; }
 .mp2-checklist li { break-inside:avoid; }
 .mp2-checklist input { width:12px; height:12px; }
 .mp2-small { font-size:8pt; }
}
