/* === Page and item tops === */
.page-top { padding-top: 24px; }
@media (min-width: 641px) { .page-top { padding-top: clamp(28px, 6vw, 72px); } }
.page-h { font-size: clamp(42px, 7.4vw, 108px); text-transform: uppercase; margin: 0 0 18px; overflow-wrap: anywhere; }
.item-h { font-size: clamp(38px, 5.6vw, 84px); margin: 6px 0 16px; overflow-wrap: anywhere; }
.item-kick { color: var(--ink-2); margin: 0; }
.byline { color: var(--muted); margin: 18px 0 0; }
.item-hero, .page-img { margin-top: 24px; }
.item-hero img, .page-img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.item-hero, .page-img { margin-left: calc(var(--gut) * -1); margin-right: calc(var(--gut) * -1); }
.wrap.item-hero { margin-left: 0; margin-right: 0; padding: 0; }
@media (min-width: 641px) { .page-img { margin-left: 0; margin-right: 0; } .wrap.item-hero { margin-left: auto; margin-right: auto; padding: 0 var(--gut); } .item-hero img, .page-img img { border-radius: var(--r); } }
.story .prose { margin: 0 auto; }
.story .item-top { max-width: 900px; }

/* === Two-column top: text + 3:2 photo (recipe, experience, project, memorabilia) === */
.rcp-top { display: grid; grid-template-columns: 1fr; gap: 20px; }
.rcp-top .img { order: -1; aspect-ratio: 3 / 2; overflow: hidden; margin: 0 calc(var(--gut) * -1); }
.rcp-top .img img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 1024px) {
  .rcp-top { grid-template-columns: 1fr 1fr; gap: clamp(24px, 4vw, 56px); align-items: end; }
  .rcp-top .img { order: 0; margin: 0; border-radius: var(--r); }
}
.rcp-meta { display: flex; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); margin: 22px 0; }
.rcp-meta div { flex: 1; padding: 12px 0 12px 14px; border-right: 1px solid var(--line); }
.rcp-meta div:first-child { padding-left: 0; }
.rcp-meta div:last-child { border-right: 0; }
.rcp-meta .crumb { margin: 0; }
.rcp-meta b { display: block; font-family: var(--f-head); font-weight: 700; font-size: 22px; line-height: 1.2; }
.rcp-meta b.small { font-size: 18px; }
@media (min-width: 641px) { .rcp-meta b { font-size: 28px; } .rcp-meta b.small { font-size: 20px; } }

/* === Recipe: ingredients beside the numbered method === */
.rcp-body { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: start; }
@media (min-width: 1024px) { .rcp-body { grid-template-columns: 360px 1fr; gap: clamp(24px, 5vw, 72px); } .ingr { position: sticky; top: calc(var(--top-h) + var(--wp-admin--admin-bar--height, 0px) + 24px); } }
.ingr { background: var(--surface); }
.ingr h3 { font-family: var(--f-head); font-weight: 700; font-size: 19px; margin: 22px 0 6px; }
.ingr h3:first-of-type { margin-top: 0; }
.ingr ul { list-style: none; margin: 0; padding: 0; }
.ingr li { display: flex; justify-content: space-between; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
.ingr li span:nth-child(2) { font-family: var(--f-head); font-weight: 600; color: var(--ink-2); white-space: nowrap; }
#method h3 { font-family: var(--f-head); font-weight: 700; font-size: 22px; margin: 26px 0 4px; }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: s; }
.steps li { display: grid; grid-template-columns: 52px 1fr; gap: 12px; padding: 20px 0; border-top: 1px solid var(--line); counter-increment: s; }
.steps li::before { content: counter(s, decimal-leading-zero); font-family: var(--f-head); font-weight: 800; font-size: 36px; line-height: 0.9; color: var(--gold); }
@media (min-width: 641px) { .steps li { grid-template-columns: 76px 1fr; padding: 22px 0; } .steps li::before { font-size: 52px; } }

/* === Memorabilia === */
.art { margin: 0; }
.art img { width: 100%; border-radius: var(--r); background: var(--surface); }
.art figcaption { margin-top: 8px; }
@media (min-width: 1024px) { .memorabilia .rcp-top { align-items: start; } }
.guests { columns: 2; column-gap: 24px; list-style: none; margin: 0; padding: 0; }
.yr[hidden] { display: none; }
.yr-h { display: flex; align-items: center; gap: 16px; }
.yr-h::after { content: ""; flex: 1; height: 2px; background: var(--gold); }
.guests li { break-inside: avoid; padding: 8px 0; border-bottom: 1px solid var(--line); font-family: var(--f-head); font-weight: 600; font-size: 18px; }
@media (min-width: 641px) { .guests { columns: 3; } }

/* === Film === */
.film-top { padding-top: 24px; }
.film-top .crumb, .film-top .crumb a { color: rgba(236,235,230,.7); }
.film-top .item-h { color: var(--bg); }
.tv-solo .tv-main > div:last-child { display: none; }
.film-info { display: grid; gap: 8px; margin-top: 22px; max-width: 760px; }
.film-info .lead { margin: 0; }
.film-info .fact dt { color: rgba(236,235,230,.6); }
.film-info p { margin: 0; max-width: 70ch; }
.film-info .fact a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.film-info .btns { margin-top: 8px; }

/* === WMTV series: episodes in the dark band === */
.eps { display: grid; grid-template-columns: 1fr; gap: 36px; }
@media (min-width: 641px) { .eps { grid-template-columns: repeat(2, 1fr); gap: 44px 24px; } }
@media (min-width: 1024px) { .eps { grid-template-columns: repeat(3, 1fr); } }
.ep { min-width: 0; }
.ep .img { position: relative; aspect-ratio: 16 / 9; border-radius: var(--r); overflow: hidden; background: #000; }
.ep .img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.ep a:hover .img img { transform: scale(1.03); }
.ep .img::after { content: ""; position: absolute; left: 50%; top: 50%; width: 52px; height: 52px; margin: -26px 0 0 -26px; border-radius: 50%; background: rgba(14,15,15,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 6.5v11l9-5.5z' fill='%23fff'/%3E%3C/svg%3E") center / 24px no-repeat; border: 1.5px solid rgba(255,255,255,.7); transition: background-color .2s; }
.ep a:hover .img::after { background-color: var(--gold); border-color: var(--gold); }
.ep .kick { display: block; color: var(--gold); font-size: 12px; margin: 14px 0 4px; }
.ep h3 { font-family: var(--f-head); font-weight: 700; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.1; margin: 0 0 10px; }
.ep h3 a { color: inherit; }
.ep h3 a:hover { color: var(--gold); }
.ep p { margin: 0 0 10px; font-size: 15px; line-height: 1.55; color: rgba(236,235,230,.82); overflow-wrap: anywhere; }

/* === Restaurant === */
.rhero { display: grid; grid-template-columns: 1fr; gap: 0; margin-left: auto; margin-right: auto; }
.rhero-txt { background: var(--surface); padding: 24px var(--gut); display: flex; flex-direction: column; justify-content: flex-end; gap: 14px; margin: 0 calc(var(--gut) * -1); }
.rhero-txt .h { font-size: clamp(48px, 6.8vw, 100px); text-transform: uppercase; }
.rhero-txt p { margin: 0; }
.rhero-txt .tagline { font-family: var(--f-head); font-weight: 500; font-size: clamp(22px, 2.2vw, 28px); line-height: 1.15; max-width: 24ch; }
.rhero-txt .btns .pill { flex: 1 1 100%; }
.rhero-img { order: -1; aspect-ratio: 4 / 5; overflow: hidden; margin: 0 calc(var(--gut) * -1); }
.rhero-img img { width: 100%; height: 100%; object-fit: cover; }
@media (min-width: 641px) { .rhero-txt .btns .pill { flex: 0 0 auto; } }
@media (min-width: 1024px) {
  .rhero { grid-template-columns: 1fr 1.15fr; gap: 20px; }
  .rhero-txt { margin: 0; border-radius: var(--r); padding: clamp(22px, 3.4vw, 48px); min-height: clamp(460px, 64vh, 640px); }
  .rhero-img { order: 0; margin: 0; border-radius: var(--r); aspect-ratio: auto; min-height: 420px; }
}

/* === Place page: the name inside the photo === */
.place { position: relative; overflow: hidden; background: var(--ink); aspect-ratio: 4 / 5; margin: 8px calc(var(--gut) * -1) 0; --p: 0; }
.place .layer { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 36% 40%; }
.place-bg { animation: place-fade 1.2s ease-out both; }
.place-shade { position: absolute; inset: 0; z-index: 1; background: var(--ink); opacity: calc(.2 + var(--p) * .5); pointer-events: none; }
.place-name { position: absolute; left: 0; right: 0; top: 17%; z-index: 2; margin: 0; text-align: center; font-family: var(--f-head); font-weight: 800; text-transform: uppercase; font-size: 22vw; line-height: 0.88; letter-spacing: -0.01em; color: #F5F4F1; overflow-wrap: anywhere; transform: translate3d(0, calc(var(--p) * -14vh), 0); opacity: calc(1 - max(0, var(--p) - .45) * 2.2); }
.place-name span { display: inline-block; animation: place-rise 1.9s var(--ease) .25s both; }
.place-plain { aspect-ratio: auto; min-height: 260px; }
@media (min-width: 641px) {
  .place { margin: 8px 0 0; border-radius: var(--r); aspect-ratio: auto; height: clamp(480px, 74vh, 740px); }
  .place .layer { object-position: 50% 38%; }
  .place-name { top: 9%; font-size: clamp(90px, 17vw, 260px); }
}
@keyframes place-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes place-rise { from { transform: translateY(46%); opacity: 0; } 40% { opacity: 1; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .place-name { transform: none; opacity: 1; } }
.intro { display: grid; grid-template-columns: 1fr; gap: 18px; align-items: start; }
.intro .h { font-size: clamp(34px, 4.6vw, 64px); }
.intro p { margin: 0 0 16px; max-width: 58ch; }
@media (min-width: 1024px) { .intro { grid-template-columns: 1fr 1.25fr; gap: clamp(24px, 5vw, 72px); } }
.intro .rest-intro { margin: 0; }
@media (min-width: 1024px) { .intro .rest-intro { padding-top: 34px; } }

/* === Search and paging === */
.search-count { margin-top: 18px; }
.pager .nav-links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 40px; }
.pager .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--r); font-family: var(--f-head); font-weight: 600; }
.pager .page-numbers.current { background: var(--ink); border-color: var(--ink); color: var(--bg); }

/* === Story: photo runs inside the text === */
.prose .pics { display: grid; grid-template-columns: 1fr; gap: 12px; margin: 1.4em 0; }
.prose .pics figure { margin: 0; }
.prose .pics img { aspect-ratio: 3 / 2; object-fit: cover; }
@media (min-width: 641px) { .prose .pics { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
@media (min-width: 1024px) { .prose .pics:has(> figure:nth-child(3)) { grid-template-columns: repeat(3, 1fr); } }

/* === Logo grid (Privileges partners): whole logos, caption under === */
.prose div.pics.logos { grid-template-columns: repeat(3, 1fr); gap: 16px 12px; }
.prose div.pics.logos img { aspect-ratio: 3 / 2; object-fit: contain; }
.prose div.pics.logos figcaption { font-size: 12px; line-height: 1.35; margin-top: 6px; }
@media (min-width: 641px) { .prose div.pics.logos { grid-template-columns: repeat(4, 1fr); } }
@media (min-width: 1024px) { .prose div.pics.logos { grid-template-columns: repeat(6, 1fr); } }
.prose h3 + p { margin-top: 0; }

/* === Careers: open positions, restaurant logo + role + facts === */
.prose .jobs { display: grid; grid-template-columns: 1fr; gap: 16px; margin: 1.4em 0 2em; }
@media (min-width: 641px) { .prose .jobs { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .prose .jobs { grid-template-columns: repeat(3, 1fr); } }
.prose .job { display: grid; grid-template-columns: 64px 1fr; gap: 6px 14px; align-content: start; padding: 18px; border: 1px solid var(--line); border-radius: var(--r); font-size: 15px; line-height: 1.5; }
.prose .job figure { grid-row: span 2; width: 64px; height: 64px; margin: 0; }
.prose .job img { width: 64px; height: 64px; margin: 0; border-radius: var(--r); object-fit: cover; }
.prose .job h3 { margin: 0; font-size: 22px; align-self: end; }
.prose .job .job-at { margin: 0; color: var(--muted); font-size: 14px; }
.prose .job dl { grid-column: 1 / -1; margin: 8px 0 0; }
.prose .job dt { font-family: var(--f-head); font-weight: 600; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.prose .job dd { margin: 0 0 8px; }
.prose .job p.job-go { grid-column: 1 / -1; margin: 4px 0 0; }
.prose .job .pill { text-decoration: none; }
#careers-form { scroll-margin-top: 96px; }

/* === Media (/media/): press rows, text and picture side by side, year groups as h2 === */
.prose.press > h2 { margin: 1.4em 0 0; padding-bottom: 10px; border-bottom: 2px solid var(--ink); }
.prose .press-row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; padding: 28px 0; border-bottom: 1px solid var(--line); }
@media (min-width: 900px) { .prose .press-row { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 40px; align-items: start; } .prose .press-row.img-first { grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); } .prose .press-row.img-first .press-img { order: -1; } }
.prose .press-row.press-pics { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 641px) { .prose .press-row.press-pics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.prose .press-row figure, .prose .press-img figure { margin: 0; }
.prose .press-img figure + figure { margin-top: 16px; }
.prose .press-txt > :last-child { margin-bottom: 0; }
.prose .press-txt h3 { margin-top: 0; }
.prose .press-list { list-style: none; margin: 0 0 1.4em; padding: 0; }
.prose .press-list li { padding: 9px 0; border-bottom: 1px solid var(--line); font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.prose .press-list li:first-child { padding-top: 0; }
.prose .press-out { display: block; font-family: var(--f-head); font-weight: 600; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.prose p.press-out { margin: 1.4em 0 .4em; }
.prose .press-txt > p.press-out:first-child { margin-top: 0; }
.prose .press-txt blockquote { margin: 0 0 .8em; }
.prose .press-date { font-size: 14px; color: var(--muted); margin-top: -.6em; }
.prose .press-go { font-size: 15px; overflow-wrap: anywhere; }
