/* NaanUp Core: front-end styles (calendar, inquiry form, menu extras). Uses the theme's --nu-* variables with fallbacks. */
.nu-cal, .nu-meals, .nu-inquiry { --g: var(--nu-gold, #f5b82a); --gr: var(--nu-green, #4f772d); --o: var(--nu-orange, #c76c00); --br: var(--nu-brown, #8c5a3c); --cr: var(--nu-cream, #fff7e4); --pp: var(--nu-paper, #fffdf6); --ink: var(--nu-ink, #2d2119); --line: var(--nu-line, rgba(45,33,25,.16)); }

/* ---------- menu extras ---------- */
.nu-price-list { display: flex; flex-wrap: wrap; gap: 6px 16px; margin: 0; padding: 0; list-style: none; }
.nu-price-list li { display: flex; align-items: baseline; gap: 7px; }
.nu-price-list span { font-size: .72em; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; opacity: .8; }
.nu-price-list b, .nu-price-single { font-family: var(--nu-display, Impact, sans-serif); font-size: 1.25em; font-weight: 400; }
.nu-dish-tags { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.nu-dish-tags em { padding: 4px 9px; border: 1.5px solid var(--ink, #2d2119); border-radius: 999px; font-size: 10px; font-style: normal; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.nu-soldout-note { margin: 0 0 10px; font-weight: 900; color: var(--o, #c76c00); }
.nu-menu-filter { display: flex; flex-wrap: wrap; gap: 8px; padding-bottom: 28px; }
.nu-menu-filter button { padding: 9px 16px; border: 2px solid var(--ink, #2d2119); border-radius: 999px; background: transparent; font: 900 11px/1 var(--nu-body, sans-serif); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; }
.nu-menu-filter button.is-active { background: var(--ink, #2d2119); color: var(--cr, #fff7e4); }
.nu-live { display: inline-block; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--gr, #4f772d); color: #fff; font-size: 10px; font-style: normal; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; }

/* ---------- calendar shell ---------- */
.nu-calendar-section { margin: 0 !important; padding: clamp(36px, 6vw, 80px) 0; background: var(--pp, #fffdf6); }
.nu-cal__wrap { color: var(--ink); }
.nu-cal__bar { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.nu-cal__nav { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.nu-cal__title { margin: 0 0 0 8px !important; font-size: clamp(1.5rem, 3.4vw, 2.6rem) !important; line-height: 1 !important; }
.nu-cal__btn { min-width: 44px; min-height: 44px; padding: 0 14px; border: 2px solid var(--ink); border-radius: 999px; background: var(--pp); color: var(--ink); font: 900 12px/1 var(--nu-body, sans-serif); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; transition: transform .15s, background .15s; }
.nu-cal__btn:hover { background: var(--g); transform: translateY(-1px); }
.nu-cal__btn[hidden] { display: none; }
.nu-cal__views { display: inline-flex; padding: 4px; border: 2px solid var(--ink); border-radius: 999px; background: var(--cr); }
.nu-cal__view { min-height: 38px; padding: 0 16px; border: 0; border-radius: 999px; background: transparent; color: var(--ink); font: 900 12px/1 var(--nu-body, sans-serif); letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.nu-cal__view.is-active { background: var(--ink); color: var(--cr); }
.nu-cal__legend { display: flex; flex-wrap: wrap; gap: 8px 18px; align-items: center; margin-bottom: 14px; font-size: 12px; font-weight: 800; }
.nu-cal__key { display: inline-flex; align-items: center; gap: 7px; }
.nu-cal__key::before { width: 12px; height: 12px; border-radius: 4px; background: var(--c); content: ""; }
.nu-cal__key.is-unavail::before { background: repeating-linear-gradient(45deg, #b7aa97 0 3px, #e7dccb 3px 6px); }
.nu-cal__tz { margin-left: auto; font-weight: 700; opacity: .7; }
.nu-cal__body { position: relative; min-height: 220px; border: 2px solid var(--ink); border-radius: 18px; background: #fff; overflow: hidden; box-shadow: 6px 6px 0 var(--line); }
.nu-cal__body.is-loading { opacity: .55; transition: opacity .2s; }
.nu-cal__loading, .nu-cal__empty, .nu-cal__error { padding: 28px; text-align: center; font-weight: 700; }
.nu-cal__tools { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; justify-content: space-between; margin-top: 16px; }
.nu-cal__subwrap { position: relative; }
.nu-cal__pop { position: absolute; bottom: calc(100% + 8px); left: 0; z-index: 20; display: grid; min-width: 240px; padding: 8px; border: 2px solid var(--ink); border-radius: 14px; background: #fff; box-shadow: 6px 6px 0 var(--line); }
.nu-cal__pop[hidden] { display: none; }
.nu-cal__pop a { padding: 11px 12px; border-radius: 8px; color: var(--ink); font-weight: 800; text-decoration: none; }
.nu-cal__pop a:hover { background: var(--cr); }

/* ---------- month ---------- */
.nu-month__dow, .nu-month__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.nu-month__dow { background: var(--ink); color: var(--cr); }
.nu-month__dow span { padding: 10px 8px; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-align: center; text-transform: uppercase; }
.nu-day { position: relative; min-height: clamp(78px, 11vw, 132px); padding: 6px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fff; cursor: pointer; transition: background .15s; }
.nu-day:nth-child(7n) { border-right: 0; }
.nu-day:hover, .nu-day:focus-visible { z-index: 1; background: var(--cr); outline: 2px solid var(--ink); outline-offset: -2px; }
.nu-day__n { display: inline-grid; min-width: 26px; height: 26px; place-items: center; border-radius: 999px; font-size: 13px; font-weight: 900; }
.nu-day.is-today .nu-day__n { background: var(--gr); color: #fff; }
.nu-day.is-other { background: #faf6ec; }
.nu-day.is-other .nu-day__n { opacity: .4; }
.nu-day.is-past { background: repeating-linear-gradient(135deg, #f6f1e5 0 8px, #f1ebdc 8px 16px); color: #8a7d70; }
.nu-day.is-past .nu-day__n { opacity: .55; }
.nu-day.is-unavail { background: repeating-linear-gradient(45deg, #efe6d6 0 6px, #f8f2e6 6px 12px); }
.nu-day.is-marked-booked { box-shadow: inset 0 0 0 2px rgba(199,108,0,.35); }
.nu-day.is-open { box-shadow: inset 0 0 0 2px rgba(79,119,45,.35); }
.nu-day__tag { position: absolute; top: 8px; right: 6px; max-width: 62%; overflow: hidden; padding: 2px 7px; border-radius: 999px; background: #6b5a4d; color: #fff; font-size: 9px; font-weight: 900; letter-spacing: .06em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.nu-day__tag.is-booked { background: var(--o); }
.nu-day__tag.is-open { background: var(--gr); }
.nu-day__events { display: grid; gap: 3px; margin-top: 4px; }
.nu-chipev { display: flex; gap: 5px; align-items: center; width: 100%; min-width: 0; padding: 3px 7px; border: 0; border-left: 4px solid var(--c); border-radius: 6px; background: color-mix(in srgb, var(--c) 16%, #fff); color: var(--ink); font: 700 11.5px/1.25 var(--nu-body, sans-serif); text-align: left; cursor: pointer; }
.nu-chipev b { flex: 0 0 auto; font-weight: 900; }
.nu-chipev span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nu-chipev:hover { background: color-mix(in srgb, var(--c) 30%, #fff); }
.nu-chipev.is-past, .nu-tev.is-past, .nu-evcard.is-past { opacity: .5; filter: saturate(.5); }
.nu-chipev.is-cancelled span, .nu-tev.is-cancelled b, .nu-evcard.is-cancelled h4 { text-decoration: line-through; }
.nu-day__more { padding: 0 6px; font-size: 11px; font-weight: 800; opacity: .7; }
.nu-day__dots { display: none; gap: 3px; margin-top: 4px; }
.nu-day__dots i { width: 7px; height: 7px; border-radius: 50%; }

/* ---------- time grid (week/day) ---------- */
.nu-tg { display: flex; flex-direction: column; }
.nu-tg__head, .nu-tg__allday { display: grid; grid-template-columns: 54px repeat(var(--n, 7), minmax(0, 1fr)); border-bottom: 1px solid var(--line); }
.nu-tg:not(.is-single) .nu-tg__head, .nu-tg:not(.is-single) .nu-tg__allday { --n: 7; }
.nu-tg.is-single .nu-tg__head, .nu-tg.is-single .nu-tg__allday { --n: 1; }
.nu-tg__corner { padding: 6px 4px; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-align: center; text-transform: uppercase; opacity: .6; }
.nu-tg__dayhead { display: grid; justify-items: center; gap: 0; padding: 8px 4px; border: 0; border-left: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; }
.nu-tg__dayhead span { font-size: 10px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.nu-tg__dayhead b { display: grid; min-width: 32px; height: 32px; place-items: center; border-radius: 999px; font-size: 18px; }
.nu-tg__dayhead em { font-size: 9px; font-style: normal; font-weight: 900; text-transform: uppercase; color: #8a2424; }
.nu-tg__dayhead.is-today b { background: var(--gr); color: #fff; }
.nu-tg__dayhead.is-past { opacity: .55; }
.nu-tg__dayhead:hover { background: var(--cr); }
.nu-tg__adcell { display: grid; align-content: start; gap: 3px; min-height: 30px; padding: 4px; border-left: 1px solid var(--line); }
.nu-tg__scroll { max-height: min(70vh, 640px); overflow: auto; }
.nu-tg__grid { display: grid; grid-template-columns: 54px 1fr; min-width: 0; }
.nu-tg__gutter { position: sticky; left: 0; z-index: 2; background: #fff; }
.nu-tg__hr { padding: 0 6px; border-top: 1px solid var(--line); color: #7a6c60; font-size: 10px; font-weight: 800; text-align: right; transform: translateY(-.55em); }
.nu-tg__hr:first-child { border-top: 0; }
.nu-tg__cols { position: relative; display: grid; grid-template-columns: repeat(var(--n, 7), minmax(0, 1fr)); }
.nu-tg:not(.is-single) .nu-tg__cols { --n: 7; }
.nu-tg.is-single .nu-tg__cols { --n: 1; }
.nu-tg__col { position: relative; border-left: 1px solid var(--line); background: repeating-linear-gradient(to bottom, transparent 0, transparent calc(52px - 1px), var(--line) calc(52px - 1px), var(--line) 52px); }
.nu-tg__col.is-past { background-color: #f6f1e5; }
.nu-tg__col.is-unavail { background-color: #efe6d6; background-image: repeating-linear-gradient(45deg, rgba(0,0,0,.04) 0 6px, transparent 6px 12px); }
.nu-tg__col.is-today { background-color: #fffbea; }
.nu-tev { position: absolute; display: grid; align-content: start; gap: 1px; overflow: hidden; padding: 4px 7px; border: 0; border-left: 4px solid var(--c); border-radius: 7px; background: color-mix(in srgb, var(--c) 18%, #fff); color: var(--ink); font: 700 11.5px/1.25 var(--nu-body, sans-serif); text-align: left; cursor: pointer; box-shadow: 0 1px 3px rgba(0,0,0,.12); }
.nu-tev:hover { z-index: 3; background: color-mix(in srgb, var(--c) 32%, #fff); }
.nu-tev b { font-weight: 900; }
.nu-tev span { opacity: .85; }
.nu-tg__now { position: absolute; left: 0; right: 0; z-index: 4; height: 2px; background: #d32f2f; pointer-events: none; }
.nu-tg__now::before { position: absolute; left: -4px; top: -4px; width: 10px; height: 10px; border-radius: 50%; background: #d32f2f; content: ""; }

/* ---------- day view ---------- */
.nu-dayview { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr); }
.nu-dayview .nu-tg { border-right: 2px solid var(--ink); }
.nu-dayside { display: grid; align-content: start; gap: 12px; padding: 18px; background: var(--pp); }
.nu-banner { padding: 11px 14px; border-radius: 10px; font-size: 14px; }
.nu-banner.is-bad { background: #f6dcd8; border-left: 5px solid #b32d2e; }
.nu-banner.is-warn { background: #fff0cf; border-left: 5px solid var(--o); }
.nu-banner.is-ok { background: #e4efd5; border-left: 5px solid var(--gr); }
.nu-dayempty h4 { margin: 0 0 6px; font-size: 1.6rem; }
.nu-dayempty p { margin: 0; }
.nu-evcard { display: grid; gap: 4px; padding: 14px 16px; border: 2px solid var(--ink); border-left: 8px solid var(--c); border-radius: 14px; background: #fff; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.nu-evcard:hover, .nu-evcard:focus-visible { transform: translate(-2px, -2px); box-shadow: 4px 4px 0 var(--line); }
.nu-evcard__time b { font-size: 1.1rem; }
.nu-evcard h4 { margin: 4px 0 2px; font-size: 1.5rem; }
.nu-evcard p { margin: 0; font-size: 14px; }
.nu-evcard__addr { opacity: .75; }
.nu-dayreq { justify-self: start; }
.nu-badge { display: inline-flex; margin-right: 6px; padding: 3px 9px; border-radius: 999px; background: var(--c, var(--gr)); color: #fff; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.nu-badge.is-live { background: #2e7d32; }
.nu-badge.is-cancel { background: #b32d2e; }
.nu-badge.is-past { background: #8a7d70; }

/* ---------- agenda ---------- */
.nu-agenda { padding: 8px 18px 18px; }
.nu-agenda__date { margin: 18px 0 8px !important; padding-bottom: 6px; border-bottom: 2px solid var(--ink); font-size: 1.5rem !important; }
.nu-agenda__date.is-today::after { margin-left: 10px; padding: 3px 9px; border-radius: 999px; background: var(--gr); color: #fff; font: 900 10px/1 var(--nu-body, sans-serif); letter-spacing: .1em; content: "TODAY"; vertical-align: middle; }
.nu-agenda__row { display: grid; grid-template-columns: 150px 1fr auto auto; gap: 12px; align-items: center; width: 100%; padding: 12px 14px; margin-bottom: 8px; border: 2px solid var(--line); border-left: 6px solid var(--c); border-radius: 12px; background: #fff; color: var(--ink); text-align: left; cursor: pointer; }
.nu-agenda__row:hover { border-color: var(--ink); border-left-color: var(--c); }
.nu-agenda__row.is-cancelled strong { text-decoration: line-through; }
.nu-agenda__time { font-size: 13px; font-weight: 900; }
.nu-agenda__main { display: grid; }
.nu-agenda__main small { opacity: .75; }

/* ---------- modal ---------- */
body.nu-modal-open { overflow: hidden; }
.nu-sheet__back { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 16px; background: rgba(45,33,25,.62); backdrop-filter: blur(2px); animation: nuFade .18s; }
.nu-sheet { position: relative; width: min(100%, 640px); max-height: calc(100vh - 32px); overflow: auto; border: 2px solid var(--ink); border-radius: 20px; background: var(--pp); color: var(--ink); box-shadow: 8px 8px 0 rgba(0,0,0,.25); animation: nuPop .22s; }
.nu-sheet--form { width: min(100%, 760px); }
.nu-sheet:focus { outline: none; }
.nu-sheet__x { position: absolute; top: 10px; right: 12px; z-index: 3; width: 40px; height: 40px; border: 2px solid var(--ink); border-radius: 50%; background: #fff; font-size: 24px; line-height: 1; cursor: pointer; }
.nu-evsheet { border-top: 12px solid var(--c); }
.nu-evsheet__img { display: block; width: 100%; max-height: 240px; object-fit: cover; }
.nu-evsheet__body { padding: 22px 24px 26px; }
.nu-evsheet h3 { margin: 10px 0 12px; font-size: clamp(2rem, 5vw, 3rem); }
.nu-evsheet p { margin: 0 0 12px; }
.nu-evsheet__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.nu-inqsheet { padding: 26px 24px 28px; }
.nu-inqsheet h3 { margin: 0 0 8px; font-size: clamp(2rem, 5vw, 3rem); }
@keyframes nuFade { from { opacity: 0; } }
@keyframes nuPop { from { opacity: 0; transform: translateY(14px) scale(.98); } }

/* ---------- inquiry form ---------- */
.nu-inquiry .nu-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.nu-field { display: flex; flex-direction: column; gap: 6px; font-size: 12px; font-weight: 900; }
.nu-field__label i { color: #b32d2e; font-style: normal; }
.nu-field__label em { font-weight: 600; opacity: .65; font-style: normal; }
.nu-field input, .nu-field select, .nu-field textarea, .nu-catering-form input, .nu-catering-form select, .nu-catering-form textarea { width: 100%; min-height: 46px; padding: 11px 12px; border: 1.5px solid var(--br); border-radius: 8px; background: var(--pp); color: var(--ink); font: 500 15px/1.4 var(--nu-body, sans-serif); }
.nu-field textarea { min-height: 84px; }
.nu-field input:focus, .nu-field select:focus, .nu-field textarea:focus { outline: 3px solid color-mix(in srgb, var(--g) 70%, transparent); border-color: var(--ink); }
.nu-field__error { min-height: 0; color: #b32d2e; font-size: 12px; font-weight: 700; }
.nu-field.has-error input, .nu-field.has-error select, .nu-field.has-error textarea { border-color: #b32d2e; background: #fff4f2; }
.nu-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.nu-form-banner { margin: 14px 0 0; padding: 12px 14px; border-radius: 10px; background: #f6dcd8; border-left: 5px solid #b32d2e; font-weight: 700; }
.nu-form-banner[hidden] { display: none; }
.nu-datenote:empty { display: none; }
.nu-datenote { padding: 12px 14px; border-radius: 10px; font-size: 14px; font-weight: 600; line-height: 1.5; }
.nu-datenote.is-available { background: #e4efd5; border-left: 5px solid var(--gr); }
.nu-datenote.is-booked { background: #fff0cf; border-left: 5px solid var(--o); }
.nu-datenote.is-unavailable, .nu-datenote.is-soon, .nu-datenote.is-past { background: #f6dcd8; border-left: 5px solid #b32d2e; }
.nu-datenote__why { margin-top: 4px; font-size: 13px; opacity: .85; }
.nu-datenote__suggest { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 8px; }
.nu-chip { padding: 7px 12px; border: 2px solid var(--ink); border-radius: 999px; background: #fff; font: 800 12px/1 var(--nu-body, sans-serif); cursor: pointer; }
.nu-chip:hover { background: var(--g); }
.nu-inquiry button[disabled] { opacity: .5; cursor: not-allowed; transform: none; }
.nu-form-success--big { padding: 24px; }
.nu-form-success--big h3 { margin: 0 0 8px; font-size: 2.2rem; }
.nu-form-success__note { padding: 10px 12px; border-left: 5px solid var(--o); background: #fff0cf; }
.nu-form-success__ref strong { font-family: ui-monospace, monospace; letter-spacing: .06em; }
.nu-catering-inquiry [data-naanup-inquiry-form] .nu-catering-form { padding: clamp(20px, 3vw, 36px); border-radius: 18px; background: var(--cr); color: var(--ink); }
.nu-catering-inquiry .nu-form-success { color: var(--ink); background: var(--cr); }

/* ---------- responsive ---------- */
@media (max-width: 860px) {
  .nu-dayview { grid-template-columns: 1fr; }
  .nu-dayview .nu-tg { border-right: 0; border-bottom: 2px solid var(--ink); }
  .nu-cal__tz { margin-left: 0; width: 100%; }
  .nu-agenda__row { grid-template-columns: 1fr auto; }
  .nu-agenda__time { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .nu-inquiry .nu-form-grid { grid-template-columns: 1fr; }
  .nu-chipev { display: none; }
  .nu-day { min-height: 62px; padding: 4px; text-align: center; }
  .nu-day__dots { display: flex; justify-content: center; flex-wrap: wrap; }
  .nu-day__more { display: none; }
  .nu-day__tag { position: static; display: block; margin-top: 2px; max-width: 100%; font-size: 8px; }
  .nu-cal__views { width: 100%; }
  .nu-cal__view { flex: 1; padding: 0 6px; }
  .nu-week .nu-tg { min-width: 620px; }
  .nu-week { overflow-x: auto; }
  .nu-sheet { max-height: calc(100vh - 16px); border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) { .nu-sheet__back, .nu-sheet { animation: none; } .nu-cal__btn:hover { transform: none; } }

/* ---------- v9: phone polish ---------- */
.nu-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; font-weight: 600; line-height: 1.45; }
.nu-check input { flex: none; width: 22px; min-height: 22px; height: 22px; margin-top: 1px; accent-color: var(--gr, #4f772d); }
.nu-check a { color: inherit; text-decoration: underline; }
.nu-form-actions { margin-top: 18px; }
.nu-sheet { overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.nu-daypanel { padding: 16px 14px 18px; border-top: 2px solid var(--ink); background: var(--pp); display: grid; gap: 12px; }
.nu-daypanel__title { margin: 0; font: 400 1.4rem/1.1 var(--nu-display, Impact, sans-serif); letter-spacing: .01em; text-transform: uppercase; }
.nu-daypanel__none { margin: 0; font-weight: 600; opacity: .8; }
.nu-day.is-sel { outline: 3px solid var(--ink); outline-offset: -3px; background: var(--g); }
.nu-evcard { cursor: pointer; }
@media (max-width: 860px) {
  .nu-dayview .nu-dayside { order: -1; border-bottom: 2px solid var(--ink); }
  .nu-dayview .nu-tg { max-height: 62vh; overflow-y: auto; }
}
@media (max-width: 640px) {
  /* 16px stops iOS Safari zooming the page when a field is tapped */
  .nu-field input, .nu-field select, .nu-field textarea, .nu-catering-form input, .nu-catering-form select, .nu-catering-form textarea { font-size: 16px; min-height: 48px; }
  .nu-check input { min-height: 22px; }
  .nu-cal__bar { gap: 10px; }
  .nu-cal__nav { width: 100%; }
  .nu-cal__title { flex: 1 1 100%; order: 5; margin: 6px 0 0 !important; font-size: 1.7rem !important; }
  .nu-cal__legend { gap: 6px 14px; font-size: 11.5px; }
  .nu-cal__body { border-radius: 14px; box-shadow: 4px 4px 0 var(--line); }
  .nu-day { min-height: 54px; }
  .nu-day__n { font-size: 14px; }
  .nu-day__dots i { width: 7px; height: 7px; }
  .nu-evcard { padding: 12px; }
  .nu-cal__tools { flex-direction: column; align-items: stretch; }
  .nu-cal__tools .nu-button { width: 100%; justify-content: center; text-align: center; }
  .nu-evsheet__actions .nu-button, .nu-dayreq { width: 100%; justify-content: center; text-align: center; }
  .nu-sheet__back { align-items: end; padding: 0; }
  .nu-sheet { width: 100%; max-height: 92dvh; border-radius: 20px 20px 0 0; border-bottom: 0; animation: nuSlide .25s; }
  .nu-sheet__x { top: 8px; right: 8px; width: 44px; height: 44px; }
  .nu-evsheet__body, .nu-inqsheet { padding: 20px 16px 26px; }
  .nu-agenda__row { padding: 14px 12px; }
  .nu-button, .nu-chip { min-height: 44px; }
}
@keyframes nuSlide { from { transform: translateY(40px); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .nu-sheet { animation: none; } }


/* ---------- catering: small menu, dish pickers, add-ons ---------- */
.nu-small { margin: 0 !important; padding: clamp(45px,7vw,88px) 0; background: var(--nu-sage, #e5ebd4); }
.nu-small__guests { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 0 0 30px; padding: 14px 18px; border: 2px solid var(--nu-ink, #2d2119); border-radius: 14px; background: var(--nu-cream, #fff7e4); }
.nu-small__guests label { font-size: 13px; font-weight: 950; letter-spacing: .08em; text-transform: uppercase; }
.nu-small__guests input { width: 130px; min-height: 46px; padding: 8px 12px; border: 2px solid var(--nu-ink, #2d2119); border-radius: 10px; background: #fff; font: 800 18px/1 var(--nu-body, sans-serif); }
.nu-small__fit { flex: 1 1 240px; font-size: 14px; font-weight: 700; }
.nu-small__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.nu-small__card, .nu-packages .nu-package[data-cater-card] { position: relative; }
.nu-small__card { min-height: clamp(640px, 62vw, 800px); padding-block: clamp(30px, 3.6vw, 48px); }
.nu-small__card:nth-child(2) { transform: translateY(-8px); background: var(--nu-gold, #f5b82a); box-shadow: 8px 8px 0 var(--nu-green, #4f772d); }
.nu-small__badge { position: absolute; top: 16px; right: 16px; padding: 6px 10px; border-radius: 999px; color: var(--nu-cream, #fff7e4); background: var(--nu-ink, #2d2119); font-size: 10px; font-weight: 950; letter-spacing: .1em; }
.nu-small__badge.is-pick { background: var(--nu-green, #4f772d); }
.nu-small__badge[hidden] { display: none; }
.nu-package[data-cater-card].is-picked { outline: 4px solid var(--nu-green, #4f772d); outline-offset: 5px; }
.nu-pick-host { margin: 0 0 22px; }
.nu-pick { display: grid; gap: 12px; }
.nu-pick__lab { display: block; margin: 0 0 5px; font-size: 11px; font-weight: 950; letter-spacing: .1em; text-transform: uppercase; }
.nu-pick label { display: block; }
.nu-pick select { display: block; width: 100%; min-height: 46px; padding: 10px 12px; border: 2px solid var(--nu-ink, #2d2119); border-radius: 10px; color: var(--nu-ink, #2d2119); background: #fff; font: 700 15px/1.25 var(--nu-body, sans-serif); }
.nu-pick select:focus-visible, .nu-pick button:focus-visible, .nu-small__guests input:focus-visible { outline: 3px solid var(--nu-green, #4f772d); outline-offset: 2px; }
.nu-pick__row { position: relative; }
.nu-pick__row[hidden], .nu-pick__add[hidden], .nu-step__b[hidden], .nu-step__n[hidden] { display: none !important; }
.nu-pick__rm { position: absolute; top: -3px; right: 0; padding: 2px 4px; border: 0; color: inherit; background: none; font: 800 12px/1.4 var(--nu-body, sans-serif); text-decoration: underline; cursor: pointer; }
.nu-pick__add { min-height: 46px; padding: 10px 12px; border: 2px dashed var(--nu-ink, #2d2119); border-radius: 10px; color: inherit; background: transparent; font: 900 14px/1.2 var(--nu-body, sans-serif); cursor: pointer; }
.nu-pick__add:hover { background: rgba(255,255,255,.55); }
.nu-pick__addons { display: grid; gap: 8px; padding-top: 14px; border-top: 2px dashed rgba(45,33,25,.28); }
.nu-pick__addon { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border: 2px solid transparent; border-radius: 10px; background: rgba(255,255,255,.55); }
.nu-pick__addon.is-on { border-color: var(--nu-ink, #2d2119); background: #fff; }
.nu-pick__aname b { display: block; font-size: 15px; }
.nu-pick__aname i { font-size: 12px; font-style: normal; opacity: .85; }
.nu-step { display: inline-flex; align-items: center; gap: 8px; }
.nu-step__b { display: grid; width: 42px; height: 42px; padding: 0; place-items: center; border: 2px solid var(--nu-ink, #2d2119); border-radius: 50%; color: var(--nu-ink, #2d2119); background: var(--nu-gold, #f5b82a); font: 900 24px/1 var(--nu-body, sans-serif); cursor: pointer; }
.nu-step__b:hover { background: #fff; }
.nu-step__n { min-width: 22px; font-size: 18px; font-weight: 900; text-align: center; }
.nu-pick__sum { margin: 2px 0 0; font-size: 14px; line-height: 1.45; }
.nu-pick__sum b { font: 400 24px/1 var(--nu-display, Impact, sans-serif); letter-spacing: .01em; }
.nu-pick__warn { color: #b32d2e; font-weight: 800; }
/* the same pick inside the request form */
.nu-menubox { border: 2px solid var(--ink, #2d2119); border-radius: 12px; background: #fff; }
.nu-menubox > summary { padding: 14px 16px; font-weight: 900; cursor: pointer; }
.nu-menubox > summary em { font-weight: 600; font-style: normal; opacity: .65; }
.nu-menubox__now { font-weight: 700; color: var(--gr, #4f772d); }
.nu-menubox__body { display: grid; gap: 14px; padding: 2px 16px 18px; }
.nu-menubox .nu-seg { display: flex; flex-wrap: wrap; gap: 8px; }
.nu-menubox .nu-seg__b { min-height: 44px; padding: 9px 15px; border: 2px solid var(--ink, #2d2119); border-radius: 999px; color: var(--ink, #2d2119); background: #fff; font: 800 13px/1.2 var(--nu-body, sans-serif); cursor: pointer; }
.nu-menubox .nu-seg__b[aria-pressed="true"] { color: var(--cr, #fff7e4); background: var(--ink, #2d2119); }
.nu-menubox__tier[hidden] { display: none; }
.nu-menubox__hint { margin: 0; font-size: 12px; opacity: .8; }
.nu-form-success__menu { margin: 10px 0 0; padding-left: 18px; text-align: left; }
@media (max-width: 1000px) { .nu-small__grid { grid-template-columns: 1fr; } .nu-small__card { min-height: 0; } .nu-small__card:nth-child(2) { transform: none; order: -1; } }
@media (max-width: 600px) { .nu-small__guests input { width: 100%; } .nu-pick__addon { flex-wrap: wrap; } }
@media (prefers-reduced-motion: reduce) { .nu-small__card:nth-child(2) { transform: none; } }
