.portal-lunch{--lunch-accent:#fa3b13;--lunch-ink:#20242c;--lunch-muted:#626b79;--lunch-line:#dce0e6;color:var(--lunch-ink);background:#f4f5f7;min-height:60vh}.portal-lunch__shell{max-width:1140px}.portal-lunch .noje-page-hero{padding-bottom:28px}.portal-lunch__preview{display:inline-block;padding:4px 10px;border:1px solid #ffffff40;border-radius:5px;margin-bottom:12px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#e0e1e5}.portal-lunch .portal-lunch__subtitle{margin:8px 0 18px;color:#d1d4da;font-size:20px}.portal-lunch__week-controls{display:flex;gap:7px;margin-bottom:14px}.portal-lunch button,.portal-lunch input,.portal-lunch select{font:inherit}.portal-lunch button{cursor:pointer}.portal-lunch__week-controls button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:36px;padding:0 12px;border:1px solid #ffffff40;border-radius:6px;color:white;background:#ffffff12;font-size:13px;font-weight:700}.portal-lunch__week-controls svg{width:18px;height:18px}.portal-lunch__days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #ffffff40;border-radius:9px;overflow:hidden;background:#fff}.portal-lunch__day{min-height:83px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:#fff;color:var(--lunch-ink);border:0;border-right:1px solid var(--lunch-line);padding:10px 2px;box-shadow:inset 0 -4px transparent}.portal-lunch__day:last-child{border-right:0}.portal-lunch__day strong{font-size:19px}.portal-lunch__day span{font-size:16px;color:var(--lunch-muted)}.portal-lunch__day.is-past strong,.portal-lunch__day.is-past span{text-decoration:line-through;color:#858a93}.portal-lunch__day[aria-pressed=true]{background:#fff1ec;box-shadow:inset 0 -4px var(--lunch-accent);color:var(--lunch-accent)}.portal-lunch__day[aria-pressed=true] span{color:var(--lunch-accent)}.portal-lunch__content{padding-top:28px;padding-bottom:48px}.portal-lunch__search{display:flex;align-items:center;gap:12px;padding:0 17px;background:#fff;border:1px solid var(--lunch-line);border-radius:9px;box-shadow:0 1px 2px #20242c06}.portal-lunch__search svg{width:24px;height:24px;flex-shrink:0;color:#606873}.portal-lunch__search input{width:100%;height:58px;border:0;outline:0;background:transparent;font-size:18px;min-width:0;color:var(--lunch-ink)}.portal-lunch__search:focus-within{outline:2px solid var(--lunch-accent);outline-offset:2px}.portal-lunch__tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 10px}.portal-lunch__sort select,.portal-lunch__favorites{height:44px;background:#fff;border:1px solid #ccd1d9;border-radius:7px;padding:0 13px;color:var(--lunch-ink);font-weight:600}.portal-lunch__favorites{display:flex;align-items:center;justify-content:center;gap:8px}.portal-lunch__favorites svg{height:21px;width:21px}.portal-lunch__favorites[aria-pressed=true]{border-color:var(--lunch-accent);color:var(--lunch-accent);background:#fff1ec}.portal-lunch__favorites[aria-pressed=true] svg{fill:currentColor}.portal-lunch__hint{color:var(--lunch-muted);font-size:13px;margin:0 0 22px}.portal-lunch__status{font-size:14px;color:var(--lunch-muted);margin:12px 0}.portal-lunch__card{background:white;border:1px solid var(--lunch-line);border-radius:12px;padding:24px 26px;margin-bottom:16px;box-shadow:0 2px 5px #20242c04}.portal-lunch__card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.portal-lunch__card h2{font-size:25px;line-height:1.25;margin:0;color:var(--lunch-ink);font-weight:750}.portal-lunch__heart{background:transparent;border:0;display:inline-flex;align-items:center;justify-content:center;color:#717986;padding:4px;width:36px;height:36px;flex-shrink:0;border-radius:50%;margin-top:-4px}.portal-lunch__heart svg{width:28px;height:28px}.portal-lunch__heart[aria-pressed=true]{color:#d92d40}.portal-lunch__heart[aria-pressed=true] svg{fill:currentColor}.portal-lunch__addresses{display:flex;flex-wrap:wrap;gap:6px 18px;margin:7px 0 18px;font-size:14px;color:var(--lunch-muted)}.portal-lunch__addresses p{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.portal-lunch__addresses a{display:inline-flex;align-items:center;color:inherit;text-decoration:none;gap:5px}.portal-lunch__addresses a:hover,.portal-lunch__addresses a:focus{text-decoration:none}.portal-lunch__addresses svg{height:16px;width:16px;flex-shrink:0}.portal-lunch__dish{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:12px 0;border-top:1px solid #e8eaee;font-size:18px;line-height:1.5}.portal-lunch__dish:first-child{border-top:0;padding-top:0}.portal-lunch__dish p{margin:0}.portal-lunch__price{white-space:nowrap;font-weight:600;font-size:16px}.portal-lunch__standing{margin:17px 0 0;padding-top:14px;border-top:1px dashed #d9dde4}.portal-lunch__standing h3{font-size:12px;text-transform:uppercase;letter-spacing:.07em;color:var(--lunch-muted);margin:0 0 10px}.portal-lunch__standing .portal-lunch__dish{font-size:16px}.portal-lunch__source{font-size:12px;color:var(--lunch-muted);margin:16px 0 0}.portal-lunch__source a{color:inherit;text-decoration:underline;text-underline-offset:3px}.portal-lunch__reserve{display:inline-block;background:#fff3d7;color:#72510b;border-radius:5px;padding:5px 9px;font-size:12px;margin:0 0 16px}.portal-lunch__empty{padding:30px 22px;background:white;border:1px solid var(--lunch-line);border-radius:10px}.portal-lunch__empty h2{font-size:21px;margin:0 0 7px}.portal-lunch__empty p{margin:0;color:var(--lunch-muted);line-height:1.6}.portal-lunch__missing{margin-top:24px;font-size:14px;color:var(--lunch-muted)}.portal-lunch__missing summary{cursor:pointer;font-weight:600}.portal-lunch__missing p{line-height:1.65}.portal-lunch__retry{background:var(--lunch-accent);color:white;border:0;border-radius:7px;padding:11px 18px;font-weight:700;margin-bottom:20px}.portal-lunch [hidden]{display:none!important}.portal-lunch button:focus-visible,.portal-lunch select:focus-visible,.portal-lunch a:focus-visible{outline:2px solid var(--lunch-accent);outline-offset:3px}.portal-lunch__sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:600px){.portal-lunch .noje-page-hero h1{font-size:30px;line-height:1.2}.portal-lunch .portal-lunch__subtitle{font-size:16px}.portal-lunch .noje-page-hero{padding-bottom:20px}.portal-lunch__day{min-height:67px;gap:4px}.portal-lunch__day strong{font-size:15px}.portal-lunch__day span{font-size:12px}.portal-lunch__content{padding-top:20px}.portal-lunch__search{padding:0 12px;gap:8px}.portal-lunch__search input{height:51px;font-size:16px}.portal-lunch__search svg{height:20px;width:20px}.portal-lunch__tools{gap:8px}.portal-lunch__sort{min-width:0}.portal-lunch__sort select{width:100%;padding:0 7px;font-size:13px}.portal-lunch__favorites{padding:0 10px;gap:6px;font-size:13px;flex-shrink:0}.portal-lunch__hint{font-size:12px;line-height:1.5;margin-bottom:18px}.portal-lunch__card{padding:18px 16px;border-radius:10px}.portal-lunch__card h2{font-size:22px}.portal-lunch__addresses{font-size:13px;line-height:1.5;margin-bottom:16px}.portal-lunch__dish{font-size:16px;gap:12px}.portal-lunch__price{font-size:14px}.portal-lunch__standing .portal-lunch__dish{font-size:15px}}

.portal-lunch .noje-page-hero h1{font-weight:750;line-height:1.15}
.portal-lunch__day strong{white-space:nowrap}

.portal-lunch__search input:focus{outline:none;box-shadow:none;border:0}

/* The calendar stays visible while the compact heading scrolls away. */
.portal-lunch .noje-page-hero{padding:24px 0 20px}
.portal-lunch .portal-lunch__subtitle{margin:8px 0 0}
.portal-lunch__calendar{position:sticky;top:0;z-index:40;background:#f4f5f7;padding:12px 0;border-bottom:1px solid #dce0e6}
.portal-lunch__days{border-color:#dce0e6}
.portal-lunch__content{padding-top:18px}
.portal-lunch__card{scroll-margin-top:115px}
.portal-lunch__tools{margin-bottom:22px}
@media(max-width:600px){.portal-lunch .noje-page-hero{padding:20px 0 16px}.portal-lunch__calendar{padding:8px 0}.portal-lunch__card{scroll-margin-top:95px}}

.noje-explorer-map[data-lunch-map] .noje-map-card__media{display:none}

.portal-lunch__day{position:relative}
.portal-lunch__day .portal-lunch__today{position:absolute;top:1px;left:50%;transform:translateX(-50%);font-size:8px;line-height:9px;font-weight:800;letter-spacing:.05em;color:var(--lunch-accent);text-decoration:none}

/* One shared list panel, with dividers instead of separate restaurant cards. */
.portal-lunch__restaurants{background:#fff;border:1px solid var(--lunch-line);border-radius:12px;overflow:hidden;box-shadow:0 2px 5px #20242c04}
.portal-lunch__restaurants:empty{border:0;box-shadow:none}
.portal-lunch__restaurants .portal-lunch__card{border:0;border-radius:0;box-shadow:none;margin:0;padding:20px 24px;background:transparent}
.portal-lunch__restaurants .portal-lunch__card+.portal-lunch__card{border-top:1px solid var(--lunch-line)}
.portal-lunch__restaurants .portal-lunch__empty{border:0;border-radius:0}
.portal-lunch__dish:last-child{padding-bottom:0}
@media(max-width:600px){
    .portal-lunch .noje-page-hero{padding:16px 0 12px}
    .portal-lunch .noje-page-hero h1{font-size:24px;line-height:1.2}
    .portal-lunch .portal-lunch__subtitle{font-size:12px;line-height:1.4;margin-top:6px}
    .portal-lunch__calendar{padding:6px 0}
    .portal-lunch__day{min-height:60px;gap:2px;padding:11px 2px 5px}
    .portal-lunch__day strong{font-size:clamp(10px,2.8vw,13px)}
    .portal-lunch__day span{font-size:11px}
    .portal-lunch__content{padding-top:12px;padding-bottom:28px}
    .portal-lunch__search{padding:0 10px;gap:6px;border-radius:7px}
    .portal-lunch__search input{height:42px;font-size:16px}
    .portal-lunch__search input::placeholder{font-size:14px}
    .portal-lunch__search svg{width:18px;height:18px}
    .portal-lunch__tools{margin:10px 0 14px;gap:8px}
    .portal-lunch__sort select,.portal-lunch__favorites{height:36px;font-size:12px;border-radius:6px}
    .portal-lunch__favorites{gap:5px;padding:0 9px}
    .portal-lunch__favorites svg{width:18px;height:18px}
    .portal-lunch__restaurants{border-radius:9px}
    .portal-lunch__restaurants .portal-lunch__card{padding:14px 12px;scroll-margin-top:85px}
    .portal-lunch__card-head{gap:8px}
    .portal-lunch__card h2{font-size:18px;line-height:1.25}
    .portal-lunch__heart{width:30px;height:30px;padding:4px;margin-top:-3px}
    .portal-lunch__heart svg{width:22px;height:22px}
    .portal-lunch__addresses{font-size:12px;line-height:1.4;gap:3px 10px;margin:3px 0 9px}
    .portal-lunch__addresses p{gap:4px}
    .portal-lunch__addresses svg{width:13px;height:13px}
    .portal-lunch__dish,.portal-lunch__standing .portal-lunch__dish{font-size:14px;line-height:1.4;gap:9px;padding:8px 0}
    .portal-lunch__dish:first-child{padding-top:0}
    .portal-lunch__dish:last-child{padding-bottom:0}
    .portal-lunch__price{font-size:12px}
    .portal-lunch__standing{margin-top:11px;padding-top:9px}
    .portal-lunch__standing h3{font-size:10px;margin-bottom:7px}
    .portal-lunch__reserve{font-size:11px;margin-bottom:10px;padding:4px 7px}
    .portal-lunch__missing{font-size:12px;margin-top:16px}
    .portal-lunch__empty{padding:20px 14px}
    .portal-lunch__empty h2{font-size:18px}
    .portal-lunch__empty p{font-size:13px}
}

.portal-lunch__sort select{font-size:14px;appearance:none;-webkit-appearance:none;padding-right:38px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2320242c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:14px 14px}
@media(max-width:600px){.portal-lunch__sort select{padding-left:10px;padding-right:34px;background-position:right 10px center;background-size:13px 13px}}

@media(max-width:600px){
    .portal-lunch__calendar{padding:0;border-bottom:0}
    .portal-lunch__calendar>.portal-lunch__shell{width:100%;max-width:none;margin:0}
    .portal-lunch__days{border-radius:0;border-top:0;border-left:0;border-right:0}
}

/* Turquoise secondary accent alongside the portal's red-orange actions. */
.portal-lunch{--city-accent-secondary:#00899a;--city-accent-secondary-ink:#006875;--city-accent-secondary-soft:#e8f6f8}
.portal-lunch__day.is-past{background:#f0f1f3}
.portal-lunch__day[aria-pressed=true]{background:var(--city-accent-secondary-soft);box-shadow:inset 0 -4px var(--city-accent-secondary);color:var(--city-accent-secondary-ink)}
.portal-lunch__day[aria-pressed=true] strong,.portal-lunch__day[aria-pressed=true] span{color:var(--city-accent-secondary-ink)}
.portal-lunch__day .portal-lunch__today{top:0;right:0;left:auto;transform:none;padding:1px 5px;border-radius:0 0 0 5px;background:var(--city-accent-secondary-ink);color:#fff;font-size:8px;line-height:10px;letter-spacing:.02em}
@media(max-width:600px){.portal-lunch__day .portal-lunch__today{padding:1px 3px;font-size:8px;line-height:10px}}

/* Desktop lunch column with the portal's existing right-hand inventory. */
.portal-lunch__layout{display:block;width:100%;max-width:none;margin:0}
.portal-lunch__main{min-width:0}
.portal-lunch__sidebar{display:none;flex-direction:column;gap:20px;min-width:0}
.portal-lunch__sidebar[hidden]{display:none!important}
.portal-lunch__sidebar .noje-things-sidebar{margin-top:0!important}
@media(min-width:1024px){
    .portal-lunch__layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:28px;width:min(calc(100% - 56px),1140px);max-width:1140px;margin-inline:auto}
    .portal-lunch__main>.portal-lunch__content,.portal-lunch__calendar>.portal-lunch__shell{width:100%;max-width:none;margin:0}
    .portal-lunch__sidebar{display:flex;padding-top:12px}
}

/* Match the shared form-control layer so mobile sorting can stay compact. */
@layer components{@media(max-width:680px){.portal-lunch .portal-lunch__sort select{font-size:13px!important}}}

/* Compact desktop menu typography in the narrower lunch column. */
@media(min-width:1024px){
    .portal-lunch__calendar{border-bottom:0}
    .portal-lunch__card h2{font-size:21px}
    .portal-lunch__dish{font-size:16px;line-height:1.4}
    .portal-lunch__standing .portal-lunch__dish{font-size:15px}
    .portal-lunch__price{font-size:14px}
}

/* Keep desktop controls together when the lunch column has enough room. */
@media(min-width:1024px){
    .portal-lunch__controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:22px}
    .portal-lunch__controls .portal-lunch__search{flex:1 1 300px;min-width:0}
    .portal-lunch__controls .portal-lunch__search input{height:44px;font-size:16px}
    .portal-lunch__controls .portal-lunch__tools{flex:0 0 auto;margin:0 0 0 auto}
}

/* Keep the address close to the name, independent of the favorite button's height. */
.portal-lunch__card-head{position:relative;padding-right:50px}
.portal-lunch__card-head .portal-lunch__heart{position:absolute;top:0;right:0}
.portal-lunch__addresses{margin-top:3px}
@media(max-width:600px){.portal-lunch__card-head{padding-right:38px}}

/* Use the linked restaurant's uncropped logo beside both name and address. */
.portal-lunch__identity{display:flex;align-items:flex-start;gap:14px;min-width:0;width:100%}
.portal-lunch__identity-text{min-width:0;flex:1}
/* The text observer keeps the uncropped logo aligned with the full text block. */
.portal-lunch__logo{width:var(--lunch-logo-size,40px);height:var(--lunch-logo-size,40px);object-fit:contain;flex-shrink:0}
.portal-lunch__card-head{margin-bottom:18px}
.portal-lunch__card-head .portal-lunch__addresses{margin-bottom:0}
@media(max-width:600px){
    .portal-lunch__identity{gap:10px}
    .portal-lunch__card-head{margin-bottom:9px}
}
.portal-lunch__card h2 .portal-lunch__restaurant-link{color:inherit;text-decoration:none}
.portal-lunch__card h2 .portal-lunch__restaurant-link:hover,.portal-lunch__card h2 .portal-lunch__restaurant-link:focus-visible{text-decoration:underline;text-underline-offset:3px}

.portal-lunch .portal-lunch__standing-toggle{display:inline-flex;align-items:center;margin-top:6px;padding:5px 0;border:0;background:transparent;color:var(--portal-secondary-accent,#00899a);font-size:13px;font-weight:650;line-height:1.4}
.portal-lunch__standing-toggle:hover{text-decoration:underline;text-underline-offset:3px}

.portal-lunch__map{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex-shrink:0;height:44px;padding:0 12px;border:1px solid #ccd1d9;border-radius:7px;background:#fff;color:var(--lunch-ink);font-size:14px;font-weight:600;text-decoration:none;cursor:pointer}
.portal-lunch__map svg{width:19px;height:19px}
.portal-lunch__map:hover{color:#00899a;border-color:#00899a}
@media(max-width:600px){.portal-lunch__map{height:36px;width:36px;padding:0;border-radius:6px}.portal-lunch__map span{display:none}.portal-lunch__tools{gap:6px}.portal-lunch__sort{flex:1;min-width:0}.portal-lunch__sort select{max-width:100%}}
