/* Taverna (restaurants): soft, wonky Fraunces; tomato, olive and saffron; the hero served on a plate; the categories read like a menu. */
.p-taverna {
  --fs-hero: clamp(2.7rem, 1.2rem + 5.4vw, 5.8rem);
  --saffron: #E7A33A;
}
.p-taverna :is(.display, .hero__title, .page-title, .section-title, .article-title, .biz-id__name, .owners__title, .cat-index__name, .district__name, .lcard__title, .acard__title, .empty__title, .area-block__title, .biz-sec__title, .prose h2, .hero__spot-name, .branch__name, .cyd-embed__name, .wm-a, .standfirst, .article-dek) { font-variation-settings: "SOFT" 100, "WONK" 1; }
.p-taverna :is(.section-title, .cat-index__name, .prose h2, .biz-sec__title, .empty__title) { font-style: italic; font-weight: 700; }

/* Wordmark */
.p-taverna .wm-a { font-family: var(--font-display); font-style: italic; font-weight: 800; letter-spacing: -.03em; font-size: 1.1em; }
.p-taverna .wm-b { font-weight: 600; color: var(--accent-2); font-size: .72em; letter-spacing: .01em; margin-left: .1em; }
.p-taverna .site-footer .wm-b { color: var(--saffron); }

.p-taverna .btn { font-weight: 600; }
.p-taverna .stars { --accent-2: #B07714; }
.p-taverna .kicker, .p-taverna .lcard__kicker { color: var(--accent); }

/* Hero: the photo served on a plate, set on an olive tablecloth */
.p-taverna .hero__title { font-weight: 800; max-width: 12ch; }
.p-taverna .hero__media { padding: 4% 2% 6%; }
.p-taverna .hero__frame { aspect-ratio: 1; border-radius: 50%; box-shadow: 0 0 0 clamp(10px, 1.4vw, 18px) #fff, 0 0 0 calc(clamp(10px, 1.4vw, 18px) + 1px) var(--line), 0 44px 60px -28px rgba(90, 40, 20, .55); }
.p-taverna .hero__media::before {
  content: ""; position: absolute; z-index: 0; inset: 12% -4% -2% 10%; border-radius: 28px; transform: rotate(-5deg);
  background:
    repeating-linear-gradient(0deg, rgba(255, 255, 255, .06) 0 2px, transparent 2px 9px),
    repeating-linear-gradient(90deg, rgba(255, 255, 255, .05) 0 2px, transparent 2px 9px),
    var(--accent-2);
}
.p-taverna .hero__media::after { content: ""; position: absolute; z-index: 0; width: 22%; aspect-ratio: 1; right: -2%; top: 2%; border-radius: 50%; background: radial-gradient(circle at 40% 38%, #F6C766, var(--saffron) 68%); }
.p-taverna .hero__spot { left: -24px; bottom: 14%; border-radius: 14px; transform: rotate(-3deg); box-shadow: 0 16px 34px -16px rgba(90, 40, 20, .5); }
.p-taverna .ai-search__box { border: 2px solid var(--ink); box-shadow: 0 6px 0 var(--sand); }
.p-taverna .ai-search__box:focus-within { border-color: var(--accent); box-shadow: 0 6px 0 var(--sand), 0 0 0 4px color-mix(in oklab, var(--accent) 18%, transparent); }
@media (max-width: 900px) {
  .p-taverna .hero__media { max-width: 400px; margin-inline: auto; padding: 6% 6% 8%; }
  .p-taverna .hero__frame { aspect-ratio: 1; }
  .p-taverna .hero__spot { left: 0; bottom: -4px; }
}

/* Categories read like a menu: italic dishes, dotted leaders, the count as the price column */
.p-taverna .cat-index { gap: 0 clamp(32px, 4vw, 72px); }
.p-taverna .cat-index__item { border-top: 0; padding: 14px 0 16px; }
.p-taverna .cat-index__link { justify-content: flex-start; gap: 0; }
.p-taverna .cat-index__link::after { content: ""; order: 1; flex: 1; min-width: 24px; margin: 0 10px .32em; border-bottom: 2px dotted color-mix(in oklab, var(--ink) 32%, transparent); }
.p-taverna .cat-index__count { order: 2; font-weight: 600; color: var(--ink); }
.p-taverna .cat-index__name { font-size: clamp(1.45rem, 1.2rem + .9vw, 1.9rem); }
.p-taverna .cat-index__kids a { color: var(--ink-soft); }

/* Areas on olive */
.p-taverna .section--areas { --map-halo: var(--accent-2); --line: rgba(255, 255, 255, .22); --ink-soft: rgba(251, 250, 246, .8); --map-land: #F4EEDD; --accent: #8A2A14; background: var(--accent-2); color: #FBFAF6; }
.p-taverna .section--areas .more-link { color: #FBE3AE; text-decoration-color: rgba(251, 227, 174, .55); }
.p-taverna .section--areas a:hover { color: #FBE3AE; }
.p-taverna .section--areas .cy-map__land { stroke: rgba(255, 255, 255, .5); }
.p-taverna .section--areas .cy-map__district { --map-halo: #F4EEDD; color: var(--ink); }
.p-taverna .section--areas .cy-map__count { fill: #6A554A; }

/* Cards */
.p-taverna .lcard__title { font-size: 1.4rem; font-weight: 700; line-height: 1.08; }
.p-taverna .logo-tile { border-radius: 50%; }
.p-taverna .logo-tile--mono { background: var(--accent); color: #FFF6EA; font-style: italic; font-weight: 800; }
.p-taverna .badge--featured { background: var(--saffron); color: var(--ink); }
.p-taverna .acard__title { font-weight: 700; line-height: 1.04; }
.p-taverna .acard__media { border-radius: var(--radius); }

.p-taverna .owners { border-radius: 32px; }
.p-taverna .owners__steps li::before { background: var(--saffron); color: var(--ink); border: 0; font-style: italic; }

/* Business page and articles */
.p-taverna .biz-cover { border-radius: 28px; }
.p-taverna .standfirst { font-style: italic; font-weight: 450; }
.p-taverna .article-title { font-weight: 800; font-size: clamp(2.5rem, 1.4rem + 4vw, 4.6rem); line-height: .98; }
.p-taverna .article-dek { font-family: var(--font-display); font-style: italic; font-size: var(--fs-lg); line-height: 1.35; color: var(--ink); }
.p-taverna .article-hero__img { border-radius: 28px; }
.p-taverna .byline__avatar { background: var(--accent-2); font-family: var(--font-display); font-style: italic; }
.p-taverna .prose--article { font-size: 1.0938rem; line-height: 1.72; }
.p-taverna .prose li::marker { color: var(--accent); }
.p-taverna .editor-note { background: color-mix(in oklab, var(--sand) 55%, var(--surface)); }
.p-taverna .panel--claim { background: var(--sand); }
