/* Noms homepage (D14 Neighbourhood Newsstand), shipped as zeen-child/assets/css/pages/homepage.css.
   Tokens are the D14 site tokens (Paper "D14 · Site Templates"); fallbacks are the metric-matched
   faces measured for the listicle template, so the font swap does not shift the layout.
   Colour roles: yellow = brand + actions, red = openings, teal = weekend/plans only,
   ink/dark inversion = closures. White text never sits on red.
   Tokens, base rules, masthead, nav, search and footer live in assets/css/site-chrome.css (loaded first). */
/* without JS the filters and pickers would do nothing, so they do not render */
.nh:not(.js) :is(.nh-tools,.nh-wk-tools,[data-feed-more],[data-pick],.nh-pick){display:none!important}

/* small building signs: character portrait + name, never required reading */
.nh-sign{display:inline-flex;align-items:center;gap:8px;margin-bottom:12px;font:700 12px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.nh-sign img{width:28px;height:28px;border-radius:50%;background:var(--paper)}
.nh-sign img[data-c="red"]{box-shadow:0 0 0 2px var(--red)}
.nh-sign img[data-c="teal"]{box-shadow:0 0 0 2px var(--teal)}
.nh-sign img[data-c="yellow"]{box-shadow:0 0 0 2px var(--yellow)}
.nh-sign--dark{color:var(--ground)}
.nh-sign--dark .d{background:var(--yellow)}


/* ---------- hero ---------- */
.nh-hero{padding-block:clamp(18px,3vw,40px) 0}
.nh-hero__grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(0,1fr);gap:clamp(16px,1.8vw,24px)}
.nh-lead,.nh-side{position:relative;border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:transform .2s ease}
.nh-lead:hover,.nh-side:hover{transform:translateY(-3px)}
.nh-lead{background:var(--yellow)}
.nh-lead__text{padding:clamp(20px,2.4vw,34px) clamp(20px,2.4vw,34px) clamp(18px,2vw,26px);display:grid;gap:14px}
.nh-lead h2{margin:0;font:900 clamp(34px,4.6vw,68px)/1 var(--display);letter-spacing:-.04em;color:var(--ink);text-wrap:balance;max-width:16ch}
.nh-more{font:700 14px/1 var(--sans);display:inline-flex;gap:6px;align-items:center}
.nh-lead:hover .nh-more{text-decoration:underline;text-underline-offset:4px}
.nh-lead__img,.nh-side__img{position:relative;aspect-ratio:16/9;background:var(--yellow-soft)}
.nh-lead__img{margin-top:auto}
.nh-lead__img img,.nh-side__img img,.nh-row__img img{width:100%;height:100%;object-fit:cover}
.nh-side-stack{display:grid;gap:clamp(16px,1.8vw,24px);grid-template-rows:1fr 1fr}
.nh-side__img{background:var(--line)}
.nh-side__text{padding:18px 22px 22px;display:grid;gap:8px;flex:1;align-content:start}
.nh-side h3{margin:0;font:800 clamp(19px,1.55vw,23px)/1.14 var(--display);letter-spacing:-.02em;text-wrap:balance}
.nh-side:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.nh-side[data-t="fresh"]{background:var(--red)}
.nh-side[data-t="fresh"] .d{background:var(--ink)}
.nh-side[data-t="back"]{background:var(--yellow-soft);box-shadow:inset 0 0 0 1.5px var(--ink)}
.nh-side[data-t="news"]{background:var(--paper);box-shadow:inset 0 0 0 1.5px var(--ink)}
.nh-side[data-t="grave"]{background:var(--night);color:var(--ground)}
.nh-side[data-t="grave"] .nh-kick{color:var(--ground)}
.nh-side[data-t="grave"] .d{box-shadow:inset 0 0 0 1.5px var(--ground)}
.nh-side[data-t="grave"] .nh-side__img img{filter:grayscale(1) contrast(1.05)}
.nh-stamp{position:absolute;top:12px;right:12px;z-index:1;display:inline-flex;align-items:center;gap:6px;background:var(--paper);color:var(--ink);border-radius:999px;padding:6px 11px;font:700 11px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;box-shadow:0 0 0 1.5px var(--ink)}
.nh-stamp .nh-i{width:13px;height:13px}

/* ---------- section heads ---------- */
.nh-sec{padding-block:clamp(48px,6vw,88px) 0}
.nh-sec__head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px 32px;flex-wrap:wrap;margin-bottom:22px}
.nh-sec__head h2{margin:0;font:900 clamp(32px,4vw,56px)/1 var(--display);letter-spacing:-.04em;color:var(--ink);text-wrap:balance}
.nh-sec__head h2 em{font-style:normal;color:var(--red)}
.nh-sec__head h2 em.nh-teal{color:var(--teal)}
.nh-sec__head p{margin:0;max-width:44ch;color:var(--muted);font-size:15px}

/* ---------- feed ---------- */
.nh-chips{display:flex;flex-wrap:wrap;gap:8px}
.nh-tools{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1.5px solid var(--ink)}
.nh-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 15px;border-radius:999px;border:1px solid var(--chip-line);background:var(--paper);color:var(--ink);font:700 14px/1 var(--sans);cursor:pointer;text-decoration:none;white-space:nowrap}
.nh-chip small{font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}
.nh-chip small:empty{display:none}
.nh-chip[aria-pressed="true"]{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.nh-chip[aria-pressed="true"] small{color:var(--on-dark)}
.nh-chip[aria-pressed="true"] .d[data-t="news"],.nh-chip[aria-pressed="true"] .d[data-t="grave"]{box-shadow:inset 0 0 0 1.5px var(--ground)}
.nh-chip:hover{border-color:var(--ink)}
.nh-chip--new{background:var(--yellow);border-color:var(--ink)}
.nh-chip.is-empty{color:var(--muted);border-style:dashed}
.nh-select{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}
.nh-select select{appearance:none;min-height:44px;padding:0 36px 0 15px;border-radius:999px;border:1px solid var(--line-2);background:var(--paper) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23161616' stroke-width='1.8'/%3E%3C/svg%3E") no-repeat right 14px center;font:700 14px/1 var(--sans);color:var(--ink);cursor:pointer}
.nh-feed{list-style:none;margin:0;padding:0}
.nh-row{border-bottom:1px solid var(--line)}
.nh-row a{display:grid;grid-template-columns:clamp(104px,13vw,168px) minmax(0,1fr) auto;gap:clamp(14px,2vw,26px);align-items:center;padding-block:13px;text-decoration:none;color:var(--ink)}
.nh-row__img{aspect-ratio:16/9;border-radius:10px;overflow:hidden;background:var(--line)}
.nh-row__body{display:grid;gap:6px;min-width:0}
.nh-row h3{margin:0;font:800 clamp(17px,1.4vw,20px)/1.22 var(--display);letter-spacing:-.015em;text-wrap:pretty}
.nh-row a:hover h3{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.nh-row__meta{display:flex;flex-wrap:wrap;gap:6px}
.nh-row__meta:not(:has(> :not(.nh-new))){display:none}
.nh-row.is-new .nh-row__meta{display:flex}
.nh-row__go{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--ink);transition:background .15s,color .15s}
.nh-row a:hover .nh-row__go{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.nh-row[data-t="grave"] .nh-row__img img{filter:grayscale(1)}
.nh-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:999px;font:700 11px/1.2 var(--sans);letter-spacing:.06em;text-transform:uppercase;background:var(--yellow-soft);color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.nh-badge .nh-i{width:12px;height:12px}
.nh-badge--sp{background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-2);color:var(--muted)}
.nh-new{display:none;background:var(--yellow);color:var(--ink);border-radius:4px;padding:3px 6px;font:800 11px/1.2 var(--sans);letter-spacing:.08em;text-transform:uppercase}
.nh-row.is-new .nh-new{display:inline-block}
.nh-feed-foot{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding-top:20px}
.nh-feed-foot p{margin:0;font-size:14px;color:var(--muted)}
.nh-feed-foot__btns{display:flex;flex-wrap:wrap;gap:8px}
.nh-empty{padding:28px 0;font-size:16px;color:var(--ink)}
.nh-empty a{font-weight:700}
.nh.js .nh-row.is-extra{display:none}
.nh.js .nh-feed.is-open .nh-row.is-extra{display:block}
.nh.js .nh-feed.is-filtered .nh-break{display:none}

/* breaks inside the feed: the summer count and the inline signup (also natural ad breaks) */
.nh-break{list-style:none;margin-block:18px}
.nh-count{border-block:2px solid var(--ink);padding-block:16px 18px}
.nh-count__label{margin:0 0 10px;font:700 12px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.nh-count ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.nh-count li+li a{border-left:1px solid var(--line-2);padding-left:22px}
.nh-count a{display:flex;align-items:center;gap:16px;padding-right:18px;text-decoration:none;height:100%}
.nh-count b{font:900 clamp(48px,5vw,76px)/.9 var(--display);letter-spacing:-.05em;color:var(--red);font-variant-numeric:tabular-nums}
.nh-count [data-t="grave"] b{color:var(--ink)}
.nh-count span{font:800 15px/1.25 var(--display);color:var(--ink);max-width:22ch}
.nh-count a:hover span{text-decoration:underline;text-underline-offset:3px}
.nh-inline{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:14px 28px;align-items:center;background:var(--yellow-soft);box-shadow:inset 0 0 0 1.5px var(--ink);border-radius:var(--r);padding:clamp(18px,2.4vw,28px)}
.nh-inline__text{display:grid;gap:4px}
.nh-inline__text b{font:900 clamp(20px,1.9vw,27px)/1.1 var(--display);letter-spacing:-.025em;color:var(--ink)}
.nh-inline__text span{font-size:14px;color:var(--ink)}
.nh-textlink{display:inline-flex;align-items:center;gap:6px;min-height:44px;font:700 14px/1 var(--sans);color:var(--ink);text-underline-offset:4px}
.nh-legend{display:flex;flex-wrap:wrap;gap:4px 18px;margin:12px 0 4px;font-size:13px;color:var(--muted)}
.nh-legend span{display:inline-flex;align-items:center;gap:5px}
.nh-legend b{white-space:nowrap;color:var(--ink);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.nh-legend .nh-i{width:12px;height:12px;color:var(--ink)}
.nh-adv{margin:14px 0 0;font-size:14px;color:var(--muted)}
.nh-adv a{font-weight:700;color:var(--ink)}

/* ---------- weekend ---------- */
.nh-wk-tools{padding-bottom:16px;border-bottom:1.5px solid var(--ink)}
.nh-wk{list-style:none;margin:0;padding:0}
.nh-ev{display:grid;grid-template-columns:92px 112px minmax(0,1fr) auto auto;gap:clamp(12px,2vw,28px);align-items:center;padding-block:15px;border-bottom:1px solid var(--line)}
.nh-ev__date{display:grid;justify-items:start;line-height:1}
.nh-ev__img{width:112px;aspect-ratio:4/3;border-radius:10px;overflow:hidden;background:var(--yellow-soft)}
.nh-ev__img img{width:100%;height:100%;object-fit:cover;display:block}
.nh-ev__date b{font:900 clamp(34px,3.4vw,46px)/1 var(--display);letter-spacing:-.04em;color:var(--teal);font-variant-numeric:tabular-nums}
.nh-ev__date b.nh-ev__now{font-size:clamp(18px,1.6vw,22px);letter-spacing:-.015em;line-height:1.05;color:var(--ink);white-space:nowrap}
.nh-ev__date small{white-space:nowrap;font:700 11px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);margin-top:5px}
.nh-ev h3{margin:0 0 5px;font:800 clamp(17px,1.5vw,21px)/1.2 var(--display);letter-spacing:-.015em;color:var(--ink)}
.nh-ev h3 a{display:inline-block;padding-block:6px;margin-block:-6px;margin-right:8px;text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:4px;text-decoration-thickness:2px}
.nh-ev h3 .nh-badge{vertical-align:3px}
.nh-ev h3 a:hover{text-decoration-color:currentColor}
.nh-ev.is-same .nh-ev__date{opacity:.28}
.nh-ev p{margin:0;font-size:14px;color:var(--muted)}
.nh-ev-group{list-style:none;padding:26px 0 8px;border-bottom:1.5px solid var(--ink)}
.nh-ev-group h3{margin:0;font:700 12px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.nh-days{display:flex;gap:4px}
.nh-days i{width:32px;height:30px;border-radius:7px;display:grid;place-items:center;font:700 11px/1 var(--sans);font-style:normal;color:var(--muted);box-shadow:inset 0 0 0 1px var(--line-2)}
.nh-days i.on{background:var(--teal);color:#fff;box-shadow:none}
.nh-ev__act{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.nh-price{font:700 14px/1 var(--sans);color:var(--ink);min-width:48px;text-align:right;font-variant-numeric:tabular-nums}
.nh-price--free{background:var(--teal-pale);color:var(--ink);border-radius:999px;padding:6px 10px;min-width:0;white-space:nowrap}
.nh-cal{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:44px;height:44px;padding:0 13px;border-radius:999px;font:700 13px/1 var(--sans);text-decoration:none;border:1px solid var(--line-2);color:var(--ink);background:var(--paper)}
.nh-cal:hover{background:var(--ink);color:var(--ground);border-color:var(--ink)}
.nh-cal .nh-i{width:18px;height:18px}

/* ---------- cravings (guides): ink ground so teal stays with weekend plans ---------- */
.nh-crave{background:var(--night);color:var(--ground);border-radius:calc(var(--r) + 4px);padding:clamp(24px,3.6vw,52px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:clamp(24px,4vw,64px);align-items:center}
.nh-crave h2{margin:0 0 10px;font:900 clamp(34px,4vw,58px)/1 var(--display);letter-spacing:-.04em;color:var(--ground);text-wrap:balance}
.nh-crave__intro p{margin:0 0 22px;max-width:38ch;color:var(--on-dark)}
.nh-crave__chips{gap:10px}
.nh-crave__chips .nh-chip{background:var(--night-2);border-color:var(--chip-line);color:var(--ground);min-height:52px;padding:0 20px;font:800 17px/1 var(--display);letter-spacing:-.01em}
.nh-crave__chips .nh-chip small{color:var(--yellow);font:700 13px/1 var(--sans)}
.nh-crave__chips .nh-chip:hover{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.nh-crave__chips .nh-chip:hover small{color:var(--ink)}
.nh-crave__chips .nh-chip.is-picked{background:var(--yellow);color:var(--ink);border-color:var(--yellow)}
.nh-crave__foot{display:flex;flex-wrap:wrap;gap:10px}
.nh-crave .nh-pick{margin:16px 0 0;min-height:24px;font-size:16px;color:var(--ground)}
.nh-pick a{font-weight:700;color:var(--yellow)}

/* ---------- scout post ---------- */
.nh-scout{background:var(--yellow-soft);color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink);border-radius:calc(var(--r) + 4px);padding:clamp(24px,3.4vw,48px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.nh-scout h2{margin:0 0 12px;font:900 clamp(30px,3.4vw,48px)/1.02 var(--display);letter-spacing:-.035em;color:var(--ink);text-wrap:balance}
.nh-scout p{margin:0 0 22px;color:var(--ink);max-width:48ch}
.nh-scout .nh-scout__fine{margin:12px 0 0;font-size:13px}
.nh-ladder{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.nh-ladder li{display:grid;grid-template-columns:86px 1fr;gap:16px;align-items:center;padding:14px 18px;border-radius:12px;background:var(--paper);box-shadow:inset 0 0 0 1px var(--line-2)}
.nh-ladder b{font:900 30px/1 var(--display);color:var(--ink);letter-spacing:-.03em}
.nh-ladder span{font-size:15px;color:var(--ink)}
.nh-ladder li:last-child{background:var(--yellow);box-shadow:inset 0 0 0 1.5px var(--ink)}
.nh-ladder li:last-child b,.nh-ladder li:last-child span{color:var(--ink)}

/* ---------- newsletter ---------- */
.nh-news{background:var(--yellow);margin-top:clamp(48px,6vw,88px)}
.nh-news .nh-wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center;padding-block:clamp(36px,5vw,64px)}
.nh-news h2{margin:0;font:900 clamp(44px,6.6vw,96px)/.92 var(--display);letter-spacing:-.05em;color:var(--ink)}
.nh-news h2 span{display:block}
.nh-news p{margin:0 0 16px;color:var(--ink);font-size:17px;max-width:44ch}
.nh-form{display:flex;gap:8px;flex-wrap:wrap}
.nh-form input[type="email"]{flex:1 1 220px;min-height:52px;padding:0 20px;border-radius:999px;border:1.5px solid var(--ink);background:var(--paper);font:400 16px var(--sans);color:var(--ink)}
.nh-form input::placeholder{color:var(--muted)}
.nh-form .nh-btn{min-height:52px;padding:0 22px}
.nh .nh-form__note{margin:10px 0 0;font-size:14px;color:var(--ink)}
.nh .nh-form__msg{margin:8px 0 0;font-weight:700;color:var(--ink);font-size:15px}
.nh .nh-form__msg:empty{min-height:1.4em;margin:0}


/* ---------- toast (clears the Mediavine mobile adhesion ad) ---------- */
.nh-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);opacity:0;background:var(--ink);color:var(--ground);padding:12px 18px;border-radius:999px;font:700 14px/1.2 var(--sans);z-index:70;transition:opacity .2s,transform .2s;pointer-events:none}
.nh-toast.is-on{opacity:1;transform:translate(-50%,0)}

/* signup honeypot (bots fill it, people never see it) and Mediavine hook points */
.nh-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.nh-ad-slot:empty{display:none}
.nh-ad-slot{margin-block:clamp(32px,4vw,56px) 0;text-align:center}

/* below-the-fold, non-anchor sections render lazily */
.nh-lazy{content-visibility:auto;contain-intrinsic-block-size:auto 620px}


/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nh-inline{grid-template-columns:1fr}
}
@media (max-width:900px){
  .nh-hero__grid{grid-template-columns:1fr}
  .nh-side-stack{grid-template-columns:1fr 1fr;grid-template-rows:none}
  .nh-crave,.nh-scout,.nh-news .nh-wrap{grid-template-columns:1fr}
  .nh-ev{grid-template-columns:72px 96px minmax(0,1fr) auto;row-gap:10px}
  .nh-ev__img{width:96px;grid-row:1/span 2;grid-column:2}
  .nh-ev .nh-days{grid-column:3}
  .nh-ev__act{grid-column:4;grid-row:1/span 2}
}
@media (max-width:640px){
  .nh-side-stack{grid-template-columns:1fr}
  .nh-side__text{padding:14px 16px 18px}
  .nh-row a{grid-template-columns:104px minmax(0,1fr);align-items:start}
  .nh-row__go{display:none}
  .nh-row .nh-kick{font-size:11px;letter-spacing:.08em}
  .nh-tools{align-items:stretch}
  .nh-scroll{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(-1*var(--gut));padding-inline:var(--gut);
    -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 32px),transparent)}
  .nh-scroll .nh-chip{flex:none}
  .nh-legend{display:grid;gap:6px}
  .nh-legend span{display:block}
  .nh-legend .nh-i{display:inline-block;vertical-align:-1px;margin-right:5px}
  .nh-count ul{grid-template-columns:1fr;gap:12px}
  .nh-count li+li a{border-left:0;padding-left:0}
  .nh-count b{min-width:2ch}
  .nh-ev{grid-template-columns:48px 64px minmax(0,1fr);gap:8px 12px}
  .nh-ev__img{width:64px}
  .nh-ev .nh-days{display:none}
  .nh-ev__act{grid-column:3;grid-row:2;justify-content:flex-start}
  .nh-ev__date b.nh-ev__now{font-size:14px;white-space:normal}
  .nh-btn--wide{flex:1 1 100%}
  .nh-crave__chips .nh-chip{min-height:46px;padding:0 16px;font-size:15px}
  .nh-ladder li{grid-template-columns:64px 1fr}
  .nh-toast{bottom:calc(110px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:480px){
}
@media (prefers-reduced-motion:reduce){
  .nh-lead:hover,.nh-side:hover{transform:none}
}

/* Oct 25 build: the boards on the D14 canvas are the target (battle tests of Oct 11-12). */
.nh-badge,.nh-stamp,.nh-sign,.nh-chip small{font-size:13px}
.nh-lead .nh-badge--sp,.nh-side .nh-badge--sp{justify-self:start;align-self:start}

/* The Events Calendar (persona panel Option A): heading, weekly-post line, up to 5 text rows, one button. */
.nh-ea-head{margin-bottom:22px}
.nh-ea-head h2{margin:0;font:900 clamp(32px,4vw,56px)/1 var(--display);letter-spacing:-.04em;color:var(--ink)}
.nh-ea-head h2 a{color:inherit;text-decoration:none}
.nh-ea-head h2 a:hover{text-decoration:underline;text-underline-offset:6px}
.nh-ea-weekly{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0;min-height:44px;padding:12px 0;border-top:1.5px solid var(--ink);font:700 16px/1.3 var(--sans)}
.nh-ea-weekly a{color:var(--ink);padding-block:4px;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px;text-decoration-color:var(--teal)}
.nh-ea-label{margin:0;padding:12px 0;border-top:1.5px solid var(--ink);border-bottom:1px solid var(--line);font:700 14px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.nh .nh-ea-row{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:20px;align-items:center;padding-block:12px;border-bottom:1px solid var(--line)}
.nh-ea-date{display:grid;justify-items:start;line-height:1}
.nh-ea-date small{font:700 13px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
.nh-ea-date b{font:900 38px/1 var(--display);letter-spacing:-.04em;color:var(--teal)}
.nh-ea-row h4{margin:0 0 4px;font:800 21px/1.2 var(--display);letter-spacing:-.015em}
.nh-ea-row h4 a{color:var(--ink);text-decoration:none}
.nh-ea-row h4 a:hover{text-decoration:underline;text-underline-offset:4px}
.nh-ea-row .nh-badge--sp{margin-bottom:6px}
.nh-ea-row .nh-ea-meta{margin:0;font:700 15px/1.4 var(--sans);color:var(--ink)}
.nh-ea-foot{display:flex;justify-content:flex-end;padding-top:20px}

/* The Noms Hit List: one column, chips full width, then the city hubs. */
.nh-crave{grid-template-columns:1fr}
.nh-crave__cities{margin:0;display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;font:700 15px/1.3 var(--sans);color:var(--on-dark)}
.nh-crave__cities a{color:#fff;padding-block:6px;text-decoration:underline;text-underline-offset:4px}

@media (max-width:640px){
  .nh .nh-ea-row{grid-template-columns:52px minmax(0,1fr);gap:14px}
  .nh-ea-row .nh-cal{display:none}
  .nh-wk .nh-ea-row:nth-child(n+5){display:none}
  .nh-ea-date b{font-size:32px}
  .nh-ea-row h4{font-size:19px}
  .nh-ea-foot .nh-btn{width:100%}
  .nh-row .nh-kick{font-size:13px}
  .nh-feed-foot__btns{flex:1 1 100%}
  .nh-btn--wide{width:100%}
  /* Hero: the two side stories become compact rows under the lead. */
  .nh-side{display:grid;grid-template-columns:104px minmax(0,1fr);align-items:stretch}
  .nh-side__img{aspect-ratio:auto;min-height:88px}
  .nh-side__img .nh-stamp{display:none}
  .nh-side__text{padding:12px 14px;align-content:center}
  .nh-side h3{font-size:17px}
}
.nh-new{font-size:13px}
.nh-adv a{display:inline-block;padding-block:4px} /* 24px+ tap target */
.nh-badge:not(.nh-badge--sp){background:var(--yellow)} /* stamp pills in brand yellow, not cream (Jason, Oct 25); Sponsored stays white */
.nh-form[hidden]{display:none}
/* Signed up: a boxed confirmation with a tick replaces the form (homepage.js, Jason Oct 25) */
.nh .nh-form__msg.is-ok{display:flex;align-items:flex-start;gap:12px;max-width:560px;padding:14px 16px;border:2px solid var(--ink);border-radius:14px;background:var(--paper,#fff);font-weight:500;font-size:16px;line-height:1.45;outline:none}
.nh .nh-form__msg.is-ok::before{content:"✓";content:"✓" / "";flex:none;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--yellow);font-weight:900;font-size:16px;line-height:1}
.nh .nh-form__msg.is-ok strong{display:block;margin-bottom:2px;font:900 20px/1.2 var(--display)}
