@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500&display=swap');
:root{--green:#284c3d;--ink:#253b30;--muted:#747a6e;--cream:#f8f7f1;--line:#e0e3d7}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,input{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}header,main,footer{max-width:1180px;margin:auto}header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{text-decoration:none;color:var(--green);font:600 27px 'Playfair Display',Georgia,serif}.brand:first-letter{color:#a9b86d}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:center;padding:58px 0 48px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700;color:#78805f}h1{font:500 60px/1.13 'Playfair Display',Georgia,serif;letter-spacing:-1.5px;margin:22px 0}h1 em{color:#718048}p{color:var(--muted);line-height:1.7}.hero p{font-size:15px}.hero-note{margin-top:26px;font-size:12px}.hero-art{height:300px;position:relative;background:#dfe3ce;border-radius:140px 140px 18px 18px;overflow:hidden;transform:rotate(2deg)}.hero-art img{width:100%;height:100%;object-fit:cover}.photo-label{position:absolute;bottom:20px;left:24px;background:#fff9e7;padding:12px 18px;font-size:9px;letter-spacing:1.5px;transform:rotate(-4deg)}.search-panel{border:1px solid var(--line);border-radius:16px;background:#fff;padding:30px 36px;box-shadow:0 8px 30px #26382105}.panel-top{display:flex;justify-content:space-between;align-items:center}h2{font:500 27px 'Playfair Display',Georgia,serif;margin:0 0 18px}.text-button{background:none;border:0;color:#6b7754;font-size:12px;padding:8px 0}label[for]{display:block;font-size:11px;color:var(--muted);margin-bottom:10px}.input-row{display:flex;border:1px solid var(--line);border-radius:8px;padding:6px;background:#fcfcf9}.input-row input{border:0;background:transparent;padding:9px 12px;flex:1;min-width:0;outline:none}.input-row:focus-within{outline:2px solid #a6b486}.add{border:0;border-radius:5px;background:#eef1e5;color:var(--green);padding:8px 19px}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.chip{background:#eaf0e3;border:0;border-radius:30px;color:#47603a;padding:8px 13px;font-size:12px}.suggestions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:15px 0 24px;font-size:11px;color:var(--muted)}.suggestions button{border:1px solid var(--line);background:#fff;border-radius:20px;font-size:11px;padding:7px 12px;color:#727965}.search-bottom{border-top:1px solid #eff0e9;padding-top:22px;display:flex;align-items:center;justify-content:space-between;gap:15px}.toggle{display:flex;align-items:center;gap:7px;font-size:12px;color:#707767}input[type=checkbox]{accent-color:var(--green)}.primary{background:var(--green);color:white;border:0;border-radius:7px;padding:15px 25px;font-size:13px;min-width:185px}.primary span{margin-left:25px}.primary:disabled{opacity:.6;cursor:wait}#notice{font-size:12px;margin-bottom:0}.results{padding:48px 0 65px}.results-heading h2{margin:10px 0}.results-heading p{font-size:13px;margin-top:0}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:28px}.empty{grid-column:1/-1;border:1px dashed #d7ddc8;border-radius:12px;text-align:center;padding:35px 20px}.empty>span{font-size:36px;color:#9fae7b}.empty h3{font:500 23px 'Playfair Display',Georgia,serif}.empty p{font-size:13px}.card{border:1px solid var(--line);border-radius:12px;background:white;overflow:hidden;text-align:left;padding:0;color:var(--ink);transition:transform .2s}.card:hover{transform:translateY(-4px)}.card img{width:100%;height:210px;object-fit:cover;background:#e3e7d7}.card-content{padding:21px}.match{font-size:10px;color:#72814d;font-weight:700;letter-spacing:.5px}.card h3{font:500 23px 'Playfair Display',Georgia,serif;margin:12px 0}.card p{font-size:12px;margin:0}.card .view{display:block;margin-top:22px;font-size:12px}footer{border-top:1px solid var(--line);padding:25px 0;display:flex;justify-content:space-between;align-items:center}footer .brand{font-size:20px}footer>span:last-child{font-size:10px;color:var(--muted)}footer a{color:inherit}dialog{border:0;border-radius:15px;padding:35px;max-width:720px;width:calc(100% - 32px);max-height:85vh;color:var(--ink)}dialog::backdrop{background:#142b22b3}#close{position:sticky;top:0;float:right;background:#edf0e7;border:0;border-radius:50%;width:35px;height:35px;font-size:25px}dialog h2{margin-top:12px}dialog img{width:100%;height:260px;object-fit:cover;border-radius:9px}dialog li{padding:5px;font-size:14px}dialog p{white-space:pre-line;font-size:14px}dialog a{color:var(--green)}:focus-visible{outline:3px solid #b3bb75;outline-offset:3px}@media(max-width:800px){header,main,footer{margin-left:22px;margin-right:22px}.hero{gap:25px}h1{font-size:43px}.hero-art{height:260px}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){header{height:80px}.hero{grid-template-columns:1fr;padding-top:35px;gap:26px}.hero-art{height:200px;border-radius:80px 80px 12px 12px}.hero p br{display:none}h1{font-size:43px}.search-panel{padding:23px 20px}.search-bottom{align-items:stretch;flex-direction:column}.grid{grid-template-columns:1fr}footer{gap:25px;align-items:flex-start}.results{padding-top:35px}}
.meal-filter{border-top:1px solid var(--line);padding:20px 0}.meal-filter label{font-size:13px;font-weight:600;color:var(--ink)}.meal-filter select{width:100%;max-width:280px;border:1px solid var(--line);border-radius:7px;background:var(--cream);color:var(--ink);font:inherit;padding:11px 13px}.meal-filter p{font-size:11px;margin:9px 0 0}
.dish-panel{margin-top:28px}.dish-panel h2{margin-top:12px}.dish-panel>p{font-size:13px}.dish-panel .card{display:block;text-decoration:none}.dish-panel .grid:empty{display:none}.dish-panel #dish-more{margin-top:22px}.publisher-art{height:105px;background:#e8eddf;display:flex;align-items:center;justify-content:center;font:500 25px Georgia,serif;color:var(--green)}
.recipe-steps{padding-left:24px}.recipe-steps li{padding:7px 0 7px 7px;line-height:1.7}.recipe-credit{border-top:1px solid var(--line);padding-top:16px;font-size:11px!important}
[hidden]{display:none!important}.library-tabs button{border:0;border-radius:7px;padding:12px 18px;background:transparent;color:var(--green);font:inherit}#library-status{font-size:13px;min-height:20px}#saved-panel{padding:28px 0 60px}#saved-panel h1{font-size:42px}.recipe-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white;display:flex;flex-direction:column}.recipe-card .card{width:100%;border:0;border-radius:0;flex:1}.recipe-card .card:hover{transform:none;background:#fafbf5}.card-actions,.recipe-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;border-top:1px solid var(--line)}.recipe-toolbar{border-top:0;padding:8px 0 18px;margin-right:40px}.icon-button{border:1px solid var(--line);background:white;border-radius:7px;color:var(--green);min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.delete-button{background:transparent;border:0;color:#9c4434;padding:12px 0;font:inherit;font-size:12px}.card-actions button:disabled{cursor:default;opacity:.7}#print-area{display:none}
@media print{body.printing-recipe>*{display:none!important}body.printing-recipe>#print-area{display:block!important;color:#000;background:white;font:12pt/1.5 Georgia,serif}body.printing-recipe dialog{display:none!important}dialog::backdrop{display:none!important}#print-area h2{font-size:22pt}#print-area h3{break-after:avoid}#print-area li{break-inside:avoid}#print-area .recipe-credit{font-size:9pt}body{background:white!important}@page{margin:18mm}}
.cuisine-panel{margin-top:28px}.cuisine-panel h2{margin-top:12px}.cuisine-panel p{font-size:13px}.cuisine-controls{display:flex;flex-wrap:wrap;gap:18px;margin-top:20px}.cuisine-controls label{display:flex;flex-direction:column;gap:8px;flex:1;min-width:180px;font-size:12px}.cuisine-controls select,.cuisine-controls input{font:inherit;padding:12px;border:1px solid var(--line);border-radius:7px;background:var(--cream);color:var(--ink)}#cuisine-more{margin-top:24px}.meal-filter select{margin-bottom:12px}
.collapse-recipes{border:1px solid var(--line);border-radius:8px;background:#edf1e5;color:var(--green);font:inherit;font-size:13px;font-weight:600;padding:12px 18px;min-height:44px;margin:8px 0}#collapse-kitchen-bottom{display:block;margin-top:24px}#kitchen-results{scroll-margin-top:20px}
footer>span:last-child{max-width:65%;text-align:right}
.library-tabs{flex-wrap:wrap}#community-panel{padding:35px 0 60px}#community-panel h1{font-size:46px}.community-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:38px}.community-heading h2{margin:0}#community-form textarea{display:block;width:100%;padding:12px;font:inherit;border:1px solid var(--line);border-radius:8px;margin:10px 0 20px;resize:vertical}#community-form fieldset{border:1px solid var(--line);border-radius:8px;margin:20px 0;padding:14px;display:flex;flex-wrap:wrap;gap:15px}#community-form legend{font-size:13px}#community-form fieldset label{font-size:13px}#download-recipe-template{display:inline-block;margin:15px;color:var(--green);font-size:12px}#community-preview-panel{border-top:1px solid var(--line);padding-top:24px;margin-top:20px}#community-grid .delete-button{margin:0 20px 12px}
.dish-search-wrap{position:relative}.dish-suggestions{position:absolute;top:100%;left:0;right:0;z-index:20;max-height:320px;overflow-y:auto;background:#fff;border:1px solid #c9c5ba;border-radius:12px;box-shadow:0 8px 25px #0002;margin-top:4px}.dish-suggestions [role="option"]{padding:12px 16px;cursor:pointer;color:#263d32}.dish-suggestions [role="option"]:hover,.dish-suggestions [aria-selected="true"]{background:#e7efe3}.photo-placeholder{min-height:160px;display:grid;place-items:center;color:#52634e;background:#edf0e8;font-size:14px}



.recipe-photo{margin:0 0 20px}.recipe-photo img{width:100%;max-height:320px;object-fit:contain;border-radius:12px}.recipe-photo figcaption{font-size:11px;color:#596256;margin-top:8px}.recipe-photo a{color:inherit}@media print{.recipe-photo{display:none!important}}

[hidden]{display:none!important}.page-nav{display:flex;flex-wrap:wrap;gap:8px}.page-nav a{display:inline-block;padding:12px 16px;border-radius:22px;text-decoration:none;color:inherit}.page-nav a[aria-current="page"]{background:#224f40;color:white}.page-nav a:focus-visible{outline:3px solid #bc7c3f;outline-offset:3px}.dish-panel h1,.cuisine-panel h1{font-size:clamp(28px,5vw,42px);line-height:1.15}
.static-recipe{max-width:760px;margin:32px auto}.static-recipe h1{font-size:clamp(30px,5vw,46px)}.static-recipe li{margin:12px 0;line-height:1.65}.recipe-directory ul{columns:3;column-gap:30px}.recipe-directory li{break-inside:avoid;margin:12px 0}.recipe-directory a{color:#224f40}@media(max-width:700px){.recipe-directory ul{columns:1}}@media print{body:has(.static-recipe) header,body:has(.static-recipe) nav,body:has(.static-recipe) footer,.static-recipe button{display:none!important}.static-recipe{margin:0;max-width:none}}

.recipe-facts{margin:20px 0;padding:16px;background:#f2f4ec;border-radius:12px}.recipe-facts dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));gap:16px;margin:0}.recipe-facts dt{font-size:12px;color:#526352}.recipe-facts dd{margin:5px 0 0;font-weight:700}.recipe-facts p{font-size:12px;line-height:1.5;margin:12px 0 0}@media print{.recipe-facts{background:white;border:1px solid #bbb;break-inside:avoid}.recipe-facts dl{grid-template-columns:repeat(3,1fr)}}

.site-footer { display: block; }
.footer-credits { display: flex; justify-content: space-between; align-items: center; }
@media (max-width: 560px) {
  .footer-credits { gap: 25px; align-items: flex-start; }
}
.site-footer nav { display: flex; flex-wrap: wrap; gap: .5rem 1rem; margin-top: 1rem; }
.site-footer nav a, .info-page a { text-underline-offset: .18em; }
.site-footer nav a[aria-current="page"] { font-weight: 700; }
.info-page { max-width: 760px; margin: 2rem auto; overflow-wrap: anywhere; }
.info-page h2 { margin-top: 1.5em; }

/* Layout shared by the finder, library, and editorial pages. */
:root {
  --ink: #20382e;
  --muted: #536459;
  --cream: #f8f7f2;
  --line: #dce3d9;
  --green: #254f3d;
}

header, main, footer { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
main { min-height: 45vh; }
main a, .site-footer a { color: var(--green); text-underline-offset: .2em; }
.site-header { display: grid; grid-template-columns: minmax(0, 1fr); height: auto; gap: .65rem; padding: .8rem 0 .75rem; }
.site-header .brand {
  grid-area: 1 / 1;
  justify-self: center;
  display: grid;
  justify-items: center;
  gap: .25rem;
  padding: .35rem .75rem .6rem;
  border-radius: .65rem;
  background: #fff4e4;
  color: #0c6067;
}
.brand-art {
  /* Frame the basket artwork above the lettering in the original image. */
  position: relative;
  width: clamp(4.15rem, 12vw, 5.4rem);
  aspect-ratio: 180 / 205;
  overflow: hidden;
  mix-blend-mode: multiply;
  mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent),
              linear-gradient(to bottom, transparent, black 6%, black 95%, transparent);
  mask-composite: intersect;
}
.brand-art img { position: absolute; top: 0; left: -72.222%; width: 244.444%; max-width: none; height: auto; }
.brand-wordmark { font: 800 clamp(1rem, 3.2vw, 1.8rem)/1.1 "DM Sans", sans-serif; letter-spacing: .015em; white-space: nowrap; }
.brand-wordmark span { color: #a74b0b; }
.brand-tagline { font: 700 clamp(.55rem, 1.15vw, .68rem)/1.25 "DM Sans", sans-serif; letter-spacing: .065em; text-transform: uppercase; color: #533f34; }
.site-header .theme-toggle { grid-area: 1 / 1; justify-self: end; align-self: start; }
.site-header .page-nav { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); width: min(100%, 54rem); justify-self: center; gap: .4rem; }
.site-header .nav-link { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; min-height: 44px; padding: .5rem .3rem; text-align: center; line-height: 1.15; }
.nav-link { font-weight: 600; font-size: .875rem; }
.nav-link:hover { background: #eaf0e6; }
.saved-count { margin-left: .35em; font-size: .8em; }
.skip-link { position: fixed; top: .75rem; left: .75rem; z-index: 30; background: #fff; color: var(--green); padding: .75rem 1rem; transform: translateY(-180%); }
.skip-link:focus { transform: none; }
#library-status { margin: 0; min-height: 0; }
#library-status:not(:empty) { padding: .5rem 0; }

.hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(1.5rem, 5vw, 4.5rem); padding: clamp(1.5rem, 3vw, 2.25rem) 0 2rem; }
.hero h1 { max-width: 12ch; font-size: clamp(2.4rem, 5.3vw, 4.4rem); line-height: 1.03; letter-spacing: -.045em; margin: 0; }
.hero p { margin: 1rem 0 1.5rem; font-size: 1rem; }
main .hero-feature { display: block; text-decoration: none; }
.hero-caption { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem .75rem; padding: .7rem .25rem 0; }
.hero-caption strong { color: var(--ink); }
.hero-caption > span { font-size: .875rem; font-weight: 700; text-decoration: underline; }
.hero-feature:hover strong { text-decoration: underline; }
.hero-art { display: block; height: clamp(20rem, 38vw, 29rem); border-radius: 20px 20px 72px 20px; transform: none; }
.hero-art img { display: block; object-position: center; }
#pantry-form label { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .25rem .75rem; color: var(--ink); font-size: .875rem; font-weight: 700; }
#pantry-form label span { font-weight: 400; color: var(--muted); }
.input-row { background: #fff; padding: 4px; border-color: #b8c8ba; }
.input-row input { min-height: 44px; color: var(--ink); }
.add { min-height: 44px; font-weight: 600; border-radius: 6px; }
.add:hover, .suggestions button:hover { background: #e0eadc; }
.primary { font-size: .9rem; font-weight: 700; min-height: 46px; }
.primary:hover { background: #173f2e; }
.primary span { margin-left: .75rem; }
.ingredient-list { display: flex; align-items: center; gap: .75rem; }
.ingredient-list .chips { flex: 1; }
.chips:empty { margin: 0; }
#clear { min-height: 40px; padding-inline: .25rem; text-decoration: underline; }
.suggestions { margin: .85rem 0 1rem; font-size: .8rem; }
.suggestions button { min-height: 36px; font-size: .8rem; color: var(--green); }
.search-bottom { border: 0; padding-top: 0; justify-content: flex-start; }
.toggle { min-height: 44px; font-size: .85rem; color: var(--muted); }
.toggle input { width: 1.1rem; height: 1.1rem; }
#notice { margin: .5rem 0 0; font-size: .85rem; }
#notice:empty { margin: 0; }
#example { color: var(--green); font-size: .85rem; text-decoration: underline; min-height: 40px; }
.results { padding: 2rem 0; border-top: 1px solid var(--line); }
#meal-filter { display: grid; grid-template-columns: repeat(2, minmax(0, 15rem)); gap: 1rem; padding-bottom: 0; }
#meal-filter select { max-width: none; }
.collapse-recipes { background: transparent; padding: .5rem .75rem; }

.home-section { padding: 2rem 0; border-top: 1px solid var(--line); }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: .75rem 1rem; margin-bottom: 1rem; }
.section-heading h2 { font-size: clamp(1.65rem, 3vw, 2.2rem); margin: 0; }
.section-heading p { margin: .25rem 0 0; }
.section-heading > a { font-size: .875rem; font-weight: 700; }
.featured-grid, .guide-grid { display: grid; gap: 1rem; }
.featured-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.featured-recipe, .guide-link { background: #fff; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; text-decoration: none; }
.featured-recipe:hover, .guide-link:hover { border-color: #819c86; }
.featured-recipe:hover h3, .guide-link:hover strong { text-decoration: underline; }
.featured-recipe img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: #e7eee2; }
.featured-recipe div, .guide-link { padding: 1rem 1.15rem; }
.featured-recipe h3 { color: var(--ink); margin: .25rem 0 0; font: 600 clamp(1rem, 2vw, 1.28rem)/1.35 'Playfair Display', Georgia, serif; }
.recipe-label { font-size: .75rem; color: var(--muted); font-weight: 700; }
.guide-link { display: grid; gap: .3rem; }
.guide-link strong { color: var(--ink); }
.guide-link span:last-child { color: var(--muted); font-size: .875rem; }
.recipe-directory { padding: 1rem 0; margin: 1.25rem 0 0; border-top: 1px solid var(--line); }
.recipe-directory summary { cursor: pointer; color: var(--green); font-weight: 700; }
.recipe-directory p { max-width: 66ch; }

.dish-panel, .cuisine-panel { margin: 2rem 0; }
.dish-panel h1, .cuisine-panel h1 { margin: 0 0 .5rem; }
.dish-panel form { max-width: 40rem; }
.cuisine-panel > p { margin: .5rem 0; }
#cuisine-status:empty { margin: 0; }
#browse-controls .cuisine-controls { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
#browse-controls .cuisine-controls label { min-width: 0; }
#browse-controls :is(select, input) { width: 100%; min-height: 44px; }
.dish-panel > p, .cuisine-panel > p { font-size: 1rem; }
#saved-panel { padding-top: 1rem; }
.static-recipe h1, .info-page h1 { margin: .25em 0 .2em; letter-spacing: -.035em; }
.info-page h1 { font-size: clamp(2rem, 5vw, 3rem); }
.static-recipe h2 { margin-top: 1.25em; }
.static-recipe .recipe-photo { width: fit-content; max-width: 100%; margin-inline: auto; }
.static-recipe .recipe-photo img { display: block; width: auto; max-width: 100%; margin-inline: auto; }
.static-recipe .recipe-photo figcaption { max-width: 52ch; }
.recipe-quick-links { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; margin: 1rem 0 1.5rem; }
.recipe-quick-links a { font-weight: 700; }
.site-footer { padding: 1.5rem 0 2rem; font-size: .9rem; }
.footer-credits { gap: .5rem 1rem; flex-wrap: wrap; justify-content: flex-start; color: var(--muted); }
.footer-credits > a { margin-left: auto; }
.site-footer nav { row-gap: .75rem; }
.site-footer nav a { padding: .25rem 0; }

@media (max-width: 680px) {
  .site-header .page-nav { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  header, main, footer { width: calc(100% - 32px); }
  .hero { grid-template-columns: 1fr; padding: 1.5rem 0; }
  .hero-art { height: clamp(10rem, 54vw, 16rem); }
  .hero p { margin: .7rem 0 1rem; }
  .search-bottom { flex-direction: row; flex-wrap: wrap; gap: .25rem .75rem; align-items: center; }
  .search-bottom .primary { min-width: 0; padding-inline: .9rem; }
  .section-heading { flex-wrap: wrap; align-items: flex-start; }
  .featured-grid { grid-template-columns: 1fr; gap: .65rem; }
  .featured-recipe { display: grid; grid-template-columns: 6rem 1fr; align-items: center; }
  .featured-recipe img { height: 100%; min-height: 5rem; aspect-ratio: auto; }
  #browse-controls .cuisine-controls { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #browse-controls .cuisine-controls label:last-child { grid-column: 1 / -1; }
  .guide-grid { grid-template-columns: 1fr; }
  .featured-recipe div { padding: .65rem; }
  .footer-credits > a { margin-left: 0; }
}
@media print {
  .skip-link, .recipe-quick-links { display: none !important; }
}

.photo-credits { padding-block: 1.5rem 2.5rem; }
.photo-credits > p { max-width: 64ch; }
.photo-credits article { display: flow-root; border-top: 1px solid var(--line); padding: 1rem 0; }
.photo-credits article img { float: left; width: min(160px, 30%); height: 112px; object-fit: cover; border-radius: 10px; margin: 0 1rem .5rem 0; }
.photo-credits article h2 { font-size: 1.2rem; margin: 0 0 .4rem; overflow-wrap: anywhere; }
.photo-credits article p { font-size: .875rem; margin: .3rem 0; }

/* Account and community */
.account-link { flex-shrink: 0; border: 1px solid #9aab99; border-radius: 1.5rem; color: var(--green); font-size: .88rem; font-weight: 700; padding: .65rem .95rem; text-decoration: none; }
.account-link:hover { background: #eaf0e6; }
.account-form { display: grid; gap: .65rem; max-width: 28rem; }
.account-form label { color: var(--ink); margin: 0; font-size: .9rem; font-weight: 600; }
.account-form input:not([type=checkbox]) { width: 100%; min-height: 46px; border: 1px solid #b8c8ba; border-radius: 8px; padding: .65rem .8rem; color: var(--ink); }
.account-form button { justify-self: start; }
.account-check { display: flex; align-items: flex-start; gap: .55rem; padding-block: .45rem; }
.account-check input { width: 1.05rem; height: 1.05rem; flex-shrink: 0; }
.account-divider { margin: 1.25rem 0 .75rem; }
.account-links, .account-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .6rem 1rem; margin: .75rem 0; }
.account-links .text-button, .account-notice .text-button { color: var(--green); font-size: .875rem; text-decoration: underline; min-height: 40px; }
.account-actions .primary { color: #fff; min-width: 0; text-decoration: none; }
.account-notice { background: #eef3ea; border: 1px solid var(--line); border-radius: 10px; padding: .75rem 1rem; }
.account-notice p { margin: 0 0 .5rem; }
.account-danger { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.account-danger summary { cursor: pointer; color: #8e3f2c; font-weight: 700; }
.danger-button { min-height: 44px; padding: .6rem .85rem; color: #8e3f2c; font: inherit; font-weight: 700; background: #fff4ed; border: 1px solid #cfaa9d; border-radius: 8px; }
#account-page[aria-busy=true] button { opacity: .65; cursor: wait; }
#community-panel h1 { margin: 0 0 .4rem; font-size: clamp(2rem, 5vw, 3.25rem); }
#community-panel > p { margin: .65rem 0; }
#community-search-form { max-width: 38rem; }
.community-search { margin: 1.25rem 0; }
.community-search h2 { margin: 0 0 .65rem; }
#community-more, #community-submission { margin-top: 1.25rem; }
#community-submission summary { cursor: pointer; font: 600 1.3rem 'Playfair Display', Georgia, serif; }
#daily-community .featured-grid > a { min-width: 0; overflow-wrap: anywhere; }

@media (max-width: 420px) {
  .account-actions { align-items: flex-start; }
  .community-search .cuisine-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
  .community-search .cuisine-controls label { min-width: 0; }
}

/* Warm surfaces and a matching dark palette for recipe and account pages. */
:root {
  color-scheme: light;
  --cream: #faf6ed;
  --surface: #fffdf8;
  --soft-surface: #f2ebdf;
  --hover-surface: #ebe4d7;
  --ink: #26392d;
  --muted: #566356;
  --line: #dfd7c9;
  --control-line: #afa797;
  --green: #27533e;
  --action: #28533d;
  --action-hover: #1d422f;
  --on-action: #fffdf8;
  --accent: #985131;
  --accent-surface: #f5e6d9;
  --danger: #8e3f2c;
  --danger-surface: #fff4ed;
  --focus: #9b572f;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --cream: #171e19;
  --surface: #202b23;
  --soft-surface: #2b392e;
  --hover-surface: #344439;
  --ink: #f5efdf;
  --muted: #c3ccbc;
  --line: #455549;
  --control-line: #657b6a;
  --green: #b6d6b4;
  --action: #b2d2a8;
  --action-hover: #c5e2bb;
  --on-action: #183521;
  --accent: #f0ba96;
  --accent-surface: #422e24;
  --danger: #ffbcaa;
  --danger-surface: #442b26;
  --focus: #f0ba96;
}

:is(.search-panel, .recipe-card, .card, .featured-recipe, .guide-link, .icon-button,
    .input-row, .suggestions button, .skip-link, .dish-suggestions, dialog) {
  background: var(--surface);
}
:is(.add, .chip, .recipe-facts, .account-notice, .publisher-art, .photo-placeholder, #close) {
  background: var(--soft-surface);
}
:is(.add, .chip, .collapse-recipes, .text-button, .recipe-directory a, .theme-toggle) {
  color: var(--green);
}
:is(.eyebrow, .match, .recipe-facts dt, .recipe-photo figcaption, .empty > span, .dish-suggestions [role="option"]) {
  color: var(--muted);
}
:is(.account-link, .theme-toggle, .input-row, .account-form input:not([type=checkbox]), .dish-suggestions) {
  border-color: var(--control-line);
}
:is(.account-form input:not([type=checkbox]), #community-form textarea) {
  background: var(--surface);
  color: var(--ink);
}
:is(.primary, .account-actions .primary, .page-nav a[aria-current="page"]) {
  background: var(--action);
  color: var(--on-action);
}
.primary:hover { background: var(--action-hover); }
:is(.nav-link, .account-link, .theme-toggle, .add, .suggestions button, .collapse-recipes):hover,
.recipe-card .card:hover,
.dish-suggestions [role="option"]:hover,
.dish-suggestions [aria-selected="true"] {
  background: var(--hover-surface);
}
.page-nav .nav-link[aria-current="page"]:hover { background: var(--action-hover); }
:is(.account-danger summary, .danger-button, .delete-button) { color: var(--danger); }
.danger-button { background: var(--danger-surface); border-color: var(--control-line); }
:is(.featured-recipe img, .card img, .hero-art) { background: var(--soft-surface); }
.brand::first-letter, .hero h1 em { color: var(--accent); }
:is(input, textarea)::placeholder { color: var(--muted); opacity: .85; }
:focus-visible, .page-nav a:focus-visible, .input-row:focus-within { outline-color: var(--focus); }
input[type="checkbox"] { accent-color: var(--action); }
.empty { border-color: var(--line); }
.account-link, #close { color: var(--green); }

.theme-toggle { display: grid; place-items: center; width: 42px; height: 42px; padding: 0; flex-shrink: 0; border: 1px solid var(--control-line); border-radius: 50%; background: var(--surface); }
.theme-sun, [data-theme="dark"] .theme-moon { display: none; }
[data-theme="dark"] .theme-sun { display: block; }
.hero .food-kicker { display: inline-block; margin: 0 0 .75rem; padding: .3rem .65rem; border-radius: 99px; background: var(--accent-surface); color: var(--accent); font-size: .75rem; font-weight: 700; }
.pantry-featured { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.featured-recipe .recipe-label { color: var(--accent); }
.section-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1rem; }
.section-actions > a { font-size: .875rem; font-weight: 700; }
.collapse-recipes { margin-block: .35rem; white-space: normal; }
.collapse-recipes::before { content: "−"; display: inline-block; width: .85em; margin-right: .4em; font-weight: 700; }
.collapse-recipes[aria-expanded="false"]::before { content: "+"; }
.recipe-quick-links .collapse-recipes { margin: 0; }

@media (max-width: 900px) {
  .pantry-featured { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .pantry-featured { grid-template-columns: 1fr; }
}
@media print {
  :root[data-theme="dark"] {
    color-scheme: light;
    --cream: #fff;
    --surface: #fff;
    --soft-surface: #fff;
    --ink: #000;
    --muted: #333;
    --line: #bbb;
    --green: #000;
  }
  .static-recipe #recipe-details[hidden] { display: block !important; }
}

/* Keep the drink filters readable on phones. */
body[data-page="drinks"] #browse-controls .cuisine-controls { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
body[data-page="drinks"] #browse-controls .cuisine-controls label:last-child { grid-column: auto; }
body[data-page="drinks"] .home-section p { max-width: 66ch; }
@media (max-width: 900px) {
}
@media (max-width: 520px) {
  body[data-page="drinks"] #browse-controls .cuisine-controls { grid-template-columns: 1fr; }
}

.static-recipe { max-width: 1040px; }
.recipe-columns { display: grid; gap: clamp(20px, 4vw, 44px); align-items: start; }
.recipe-method, .recipe-sidebar { min-width: 0; }
.recipe-sidebar { display: grid; gap: 16px; }
.recipe-sidebar section { border: 1px solid currentColor; border-radius: 14px; padding: 16px 18px; }
.recipe-sidebar h2, .recipe-sidebar h3 { margin: 0 0 .5em; }
.recipe-sidebar p { margin: .65em 0 0; }
.recipe-sidebar dl { margin: .75em 0; }
.recipe-sidebar dl div { display: flex; justify-content: space-between; gap: 12px; padding: .35em 0; border-bottom: 1px solid; }
.recipe-sidebar dd { margin: 0; white-space: nowrap; font-weight: 700; }
.recipe-sidebar ul { padding-left: 1.25em; margin-bottom: 0; }
@media (min-width: 760px) { .static-recipe .recipe-columns { grid-template-columns: minmax(0, 1fr) minmax(235px, .45fr); } }
@media print { .recipe-sidebar section { break-inside: avoid; } }

/* Cookiebot's consent choices stay visible in a compact panel at the bottom. */
div#CybotCookiebotDialog.CybotMultilevel {
  top: auto !important;
  bottom: max(12px, env(safe-area-inset-bottom)) !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  width: min(650px, calc(100% - 24px)) !important;
  min-width: 0 !important;
  max-width: none !important;
  max-height: min(76dvh, 28rem) !important;
  border-radius: 16px;
}

#CybotCookiebotDialog #CybotCookiebotDialogHeader { padding: .65rem 1rem !important; }
#CybotCookiebotDialog #CybotCookiebotDialogBodyContent { padding: .75rem 1rem !important; }
#CybotCookiebotDialog #CybotCookiebotDialogBodyContentTitle { margin-block: 0 .35rem !important; }

#CybotCookiebotDialog #CybotCookiebotDialogBodyButtonsWrapper {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .4rem;
}

#CybotCookiebotDialog #CybotCookiebotDialogBodyButtonsWrapper button {
  width: 100% !important;
  min-width: 0 !important;
  min-height: 44px;
  margin: 0 !important;
  padding: .45rem .3rem !important;
  line-height: 1.3 !important;
  white-space: normal;
}

#drink-matches li + li {
  margin-top: .5rem;
}

.drink-match {
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  min-height: 44px;
}

.drink-match img {
  width: 68px;
  height: 52px;
  flex: none;
  border-radius: 8px;
  object-fit: cover;
}

.drink-match small {
  white-space: nowrap;
}

