/* Recipe Discovery. Uses the Grocery App's Admin-managed brand tokens (no independent brand controls). */
.nsg-app .nsg-recipe-home,.nsg-app .nsg-rd-enhanced-archive,.nsg-app .nsg-rd-shortcode{
  --rd-ink:var(--nsg-ink,#17251f);--rd-gold:var(--nsg-gold,#f7c34e);--rd-green:var(--nsg-secondary,#206542);--rd-muted:var(--nsg-muted,#687268);
  --rd-border:var(--nsg-border,#e9e7dc);--rd-paper:var(--nsg-paper,#fffefa);--rd-cream:var(--nsg-cream,#faf8f0);
  color:var(--rd-ink);background:var(--rd-cream);box-sizing:border-box;
}
.nsg-app .nsg-recipe-home[data-nsg-rd-enhanced],.nsg-app .nsg-rd-enhanced-archive{
  padding:clamp(24px,4vw,50px) clamp(15px,4vw,38px) 54px!important;max-width:1280px;margin:0 auto;width:100%;
}
.nsg-app .nsg-rd-home-inner{width:100%;max-width:1190px;margin:0 auto}
.nsg-app .nsg-rd-home-header{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}
.nsg-app .nsg-rd-home-header h2,.nsg-app .nsg-rd-library-hero h2{font-size:clamp(27px,5vw,42px);font-weight:850;letter-spacing:-.055em;line-height:1.1;margin:7px 0 9px;color:var(--rd-ink)}
.nsg-app .nsg-rd-home-header em,.nsg-app .nsg-rd-library-hero em{color:var(--rd-green);font-style:normal}
.nsg-app .nsg-rd-home-header p,.nsg-app .nsg-rd-library-hero p{font-size:clamp(13px,1.3vw,15px);line-height:1.45;color:var(--rd-muted);margin:0}
.nsg-app .nsg-rd-kicker{font-size:11px;font-weight:900;letter-spacing:.12em;color:var(--rd-green);line-height:1.3}
.nsg-app a.nsg-rd-text-link,.nsg-app .nsg-rd-subheading>a{font-size:13px;color:var(--rd-green)!important;font-weight:800;white-space:nowrap;text-decoration:none}
.nsg-app .nsg-rd-card{min-width:0;overflow:hidden;border-radius:16px;border:1px solid var(--rd-border);background:var(--rd-paper);box-shadow:0 5px 18px rgba(22,32,25,.04);transition:box-shadow .18s,transform .18s}
.nsg-app .nsg-rd-card:hover{box-shadow:0 13px 30px rgba(22,32,25,.13);transform:translateY(-2px)}
.nsg-app .nsg-rd-card>a.nsg-rd-card-link{display:flex!important;flex-direction:column;height:100%!important;color:var(--rd-ink)!important;text-decoration:none!important}
.nsg-app .nsg-rd-photo{width:100%;height:auto;aspect-ratio:4/3;background:var(--rd-cream);overflow:hidden}
.nsg-app .nsg-rd-photo img{width:100%;height:100%;object-fit:cover;display:block}
.nsg-app .nsg-rd-photo-fallback{display:grid;place-items:center;background:linear-gradient(140deg,var(--rd-cream),var(--rd-gold));color:var(--rd-ink)}
.nsg-app .nsg-rd-photo-fallback span{font-size:44px}
.nsg-app .nsg-rd-card-content{padding:13px 13px 15px;flex:1;display:flex;flex-direction:column;gap:7px}
.nsg-app .nsg-rd-card h3{font-size:clamp(13px,2.5vw,17px)!important;line-height:1.3;font-weight:800;color:var(--rd-ink);margin:0;letter-spacing:-.015em;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}
.nsg-app .nsg-rd-meta{display:flex;flex-wrap:wrap;align-items:center;gap:5px;font-size:11px;color:var(--rd-muted);line-height:1.35;min-height:16px}
.nsg-app .nsg-rd-meta-dot{opacity:.5}
.nsg-app .nsg-rd-card-cta{font-size:12px;font-weight:850;color:var(--rd-green);margin-top:auto;padding-top:2px}
.nsg-app .nsg-rd-featured{margin:0 0 25px}
.nsg-app .nsg-rd-featured>a.nsg-rd-card-link{display:grid!important;grid-template-columns:1.1fr 1fr;min-height:250px}
.nsg-app .nsg-rd-featured .nsg-rd-photo{aspect-ratio:auto;height:100%;min-height:250px}
.nsg-app .nsg-rd-featured .nsg-rd-card-content{justify-content:center;padding:clamp(20px,4vw,38px);gap:13px}
.nsg-app .nsg-rd-featured h3{font-size:clamp(24px,3.7vw,36px)!important;line-height:1.12;min-height:unset;-webkit-line-clamp:3}
.nsg-app .nsg-rd-featured-excerpt{color:var(--rd-muted);font-size:14px;line-height:1.55;margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nsg-app .nsg-rd-featured .nsg-rd-card-cta{font-size:14px}
.nsg-app .nsg-rd-subheading,.nsg-app .nsg-rd-list-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin:16px 0}
.nsg-app .nsg-rd-subheading h3,.nsg-app .nsg-rd-list-head h3{font-size:21px;font-weight:850;letter-spacing:-.02em;margin:0;color:var(--rd-ink)}
.nsg-app .nsg-rd-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;min-width:0}
.nsg-app .nsg-rd-bottom{text-align:center;margin:27px auto 0}
.nsg-app a.nsg-rd-browse,.nsg-app .nsg-rd-load{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:46px;padding:10px 23px;border:1px solid var(--rd-green);border-radius:13px;
  background:var(--rd-green);color:var(--nsg-on-secondary,var(--nsg-on-primary,#fff))!important;font-size:14px;font-weight:850;text-decoration:none!important;cursor:pointer}
.nsg-app .nsg-rd-browse:hover,.nsg-app .nsg-rd-load:hover{filter:brightness(1.06)}
.nsg-app .nsg-rd-library-hero{margin-bottom:22px}
.nsg-app .nsg-rd-tools{background:var(--rd-paper);border:1px solid var(--rd-border);border-radius:18px;padding:17px;margin-bottom:20px}
.nsg-app .nsg-rd-search{display:flex;align-items:center;gap:8px;border:1px solid var(--rd-border);border-radius:13px;background:var(--rd-cream);min-height:48px;padding:0 13px}
.nsg-app .nsg-rd-search:focus-within{outline:2px solid var(--rd-green);outline-offset:1px}
.nsg-app .nsg-rd-search-icon{font-size:27px;line-height:1;color:var(--rd-green)}
.nsg-app .nsg-rd-search input{flex:1;min-width:0;background:transparent;border:0;outline:none;box-shadow:none;color:var(--rd-ink);font-size:16px;padding:10px 0;margin:0}
.nsg-app .nsg-rd-categories{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;padding:15px 0 4px;scrollbar-width:thin;scroll-snap-type:x proximity}
.nsg-app .nsg-rd-chip{border:1px solid var(--rd-border);border-radius:50px;padding:9px 14px;flex:0 0 auto;white-space:nowrap;background:var(--rd-paper);color:var(--rd-ink);font-weight:750;font-size:12px;cursor:pointer;scroll-snap-align:start}
.nsg-app .nsg-rd-chip.is-selected{background:var(--rd-green);border-color:var(--rd-green);color:var(--nsg-on-primary,#fff)}
.nsg-app .nsg-rd-filter-row{display:flex;gap:13px;margin-top:13px;flex-wrap:wrap}
.nsg-app .nsg-rd-filter-row label{display:flex;align-items:center;gap:8px;color:var(--rd-muted);font-size:12px;font-weight:800;min-width:0}
.nsg-app .nsg-rd-filter-row select{min-width:0;max-width:100%;font-size:13px;border:1px solid var(--rd-border);background:var(--rd-paper);color:var(--rd-ink);border-radius:10px;padding:9px 25px 9px 10px}
.nsg-app .nsg-rd-ingredient-details{margin-top:13px;color:var(--rd-green);font-size:13px;font-weight:800}
.nsg-app .nsg-rd-ingredient-details summary{cursor:pointer;list-style-position:inside}
.nsg-app .nsg-rd-ingredient-details input{display:block;width:100%;max-width:450px;background:var(--rd-cream);color:var(--rd-ink);border:1px solid var(--rd-border);border-radius:10px;margin-top:9px;padding:10px 12px;font-size:16px}
.nsg-app .nsg-rd-count{font-size:12px;color:var(--rd-muted);white-space:nowrap}
.nsg-app .nsg-rd-load-wrap{margin:27px auto 0;text-align:center}
.nsg-app .nsg-rd-load[hidden]{display:none!important}
.nsg-app .nsg-rd-status{font-size:13px;color:var(--rd-muted);background:var(--rd-paper);border:1px solid var(--rd-border);padding:14px 18px;border-radius:13px}
.nsg-app .nsg-rd-status[hidden]{display:none!important}
.nsg-app .nsg-rd-sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.nsg-app .nsg-rd-card a:focus-visible,.nsg-app .nsg-rd-browse:focus-visible,.nsg-app .nsg-rd-chip:focus-visible,.nsg-app .nsg-rd-load:focus-visible{outline:3px solid var(--rd-gold);outline-offset:2px}
/* Bottom bar and floating assistant must not hide final rows. */
@media(max-width:1000px){.nsg-app .nsg-rd-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){
  .nsg-app .nsg-recipe-home[data-nsg-rd-enhanced],.nsg-app .nsg-rd-enhanced-archive{padding:22px 14px 68px!important}
  .nsg-app .nsg-rd-home-header{align-items:start;flex-direction:column;gap:8px}
  .nsg-app .nsg-rd-featured>a.nsg-rd-card-link{display:flex!important;flex-direction:column;min-height:unset}
  .nsg-app .nsg-rd-featured .nsg-rd-photo{height:auto;min-height:unset;aspect-ratio:16/9}
  .nsg-app .nsg-rd-featured .nsg-rd-card-content{padding:17px;gap:8px}
  .nsg-app .nsg-rd-featured h3{font-size:22px!important;-webkit-line-clamp:2}
  .nsg-app .nsg-rd-featured-excerpt{font-size:13px;-webkit-line-clamp:2}
  .nsg-app .nsg-rd-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
  .nsg-app .nsg-rd-card-content{padding:10px;gap:7px}
  .nsg-app .nsg-rd-card h3{font-size:13px!important;line-height:1.25}
  .nsg-app .nsg-rd-kicker{font-size:9px;letter-spacing:.07em}
  .nsg-app .nsg-rd-meta{font-size:10px}
  .nsg-app .nsg-rd-card-cta{font-size:11px}
  .nsg-app .nsg-rd-tools{padding:12px}
  .nsg-app .nsg-rd-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}
  .nsg-app .nsg-rd-filter-row label{display:flex;flex-direction:column;align-items:start;gap:5px}
  .nsg-app .nsg-rd-filter-row select{width:100%;font-size:12px}
}
@media(max-width:345px){.nsg-app .nsg-rd-grid{gap:8px}.nsg-app .nsg-rd-card-content{padding:9px}}
@media(prefers-reduced-motion:reduce){.nsg-app .nsg-rd-card{transition:none}}

/* Keep archive controls clear of installed mobile bottom navigation. */
@media(max-width:760px){.nsg-app .nsg-rd-enhanced-archive{padding-bottom:calc(84px + env(safe-area-inset-bottom))!important}}
/* Original standalone recipe wrappers do not inherit all component variables on every theme. */
.nsg-app .nsg-rd-featured .nsg-rd-photo img{width:100%;height:100%;object-fit:cover}
