/* Generated by assemble_styles.py. Edit the named source components. */

/* SOURCE: styles.css */
/* Red Barn Bakery: site styles
   Palette from her logo: Randell red + espresso. White content plates. No beige, cream or ivory (client rule).
   Type: Century Gothic when installed; TeX Gyre Adventor (GUST licence) as the preview fallback. */

@font-face { font-family: "RB Gothic"; font-weight: 400; font-style: normal; font-display: swap;
  src: local("Century Gothic"), local("CenturyGothic"), url("fonts/adventor-regular.woff2") format("woff2"); }
@font-face { font-family: "RB Gothic"; font-weight: 700; font-style: normal; font-display: swap;
  src: local("Century Gothic Bold"), local("CenturyGothic-Bold"), url("fonts/adventor-bold.woff2") format("woff2"); }
@font-face { font-family: "RB Gothic"; font-weight: 400; font-style: italic; font-display: swap;
  src: local("Century Gothic Italic"), local("CenturyGothic-Italic"), url("fonts/adventor-italic.woff2") format("woff2"); }

:root {
  --red: #c10b24;
  --red-deep: #9c0a1d;
  --red-wash: #fbe9eb;
  --blush: #fdf2f3;              /* light section ground (not beige) */
  --espresso: #3c2317;
  --espresso-deep: #2a170e;
  --white: #ffffff;
  --rose: #f6cdd3;               /* secondary text on red and espresso, never grey */
  --rule: rgba(60, 35, 23, 0.22);
  --rule-strong: rgba(60, 35, 23, 0.55);
  --wrap: 1240px;
  --gut: clamp(20px, 4vw, 48px);
  --ease: cubic-bezier(0.22, 0.7, 0.18, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; background: var(--white); color: var(--espresso);
  font-family: "RB Gothic", "Century Gothic", sans-serif;
  font-size: 17px; line-height: 1.6; font-kerning: normal;
}
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
a[href^="tel:"] { white-space: nowrap; }
figure { margin: 0; }
p { margin: 0; }
.sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.wrap { max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gut); }
.skip { position: absolute; left: 8px; top: -120px; background: var(--white); padding: 10px 14px; z-index: 50; }
.skip:focus { top: 8px; }
:focus-visible { outline: 3px solid var(--red); outline-offset: 3px; }
.hero :focus-visible, .ingredients :focus-visible,
.press :focus-visible, .footer :focus-visible, .utility :focus-visible { outline-color: var(--white); }

.ic { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; scroll-behavior: auto !important; }
}

/* ---------- type ---------- */
.h2, .hero__title, .panel__title {
  font-weight: 700; text-transform: lowercase; letter-spacing: -0.035em; line-height: 1.02; margin: 0;
}
.h2 { font-size: clamp(2rem, 3.6vw, 3.25rem); max-width: 16ch; }
.h2--onred, .h2--ondark { color: var(--white); }
.lede { font-size: 1.125rem; max-width: 46ch; margin-top: 18px; }
.h2, .hero__title, .panel__title, .pagehead__title, .label__title { text-wrap: balance; }
.lede, .pagehead__lede, .prose > p { text-wrap: pretty; }

/* ---------- buttons: plain, confident rectangles ---------- */
.btn {
  font-family: inherit;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; text-align: center;
  font-weight: 700; font-size: 1rem; letter-spacing: 0.01em; line-height: 1.1;
  padding: 15px 24px; border: 2px solid transparent; cursor: pointer;
  transition: background-color 250ms var(--ease), color 250ms var(--ease), border-color 250ms var(--ease);
}
.btn--red { background: var(--red); border-color: var(--red); color: var(--white); }
.btn--red:hover { background: var(--red-deep); border-color: var(--red-deep); }
.btn--white { background: var(--white); border-color: var(--white); color: var(--red); }
.btn--white:hover { background: var(--rose); border-color: var(--rose); }
.btn--ghost { background: transparent; color: var(--white); border-color: var(--white); }
.btn--ghost:hover { background: var(--white); color: var(--red); }
.btn--line { background: transparent; color: var(--espresso); border-color: var(--espresso); }
.btn--line:hover { background: var(--espresso); color: var(--white); }
.textlink { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--red); text-decoration: none; border-bottom: 2px solid var(--red); padding-bottom: 3px; }
.textlink:hover .ic { transform: translateX(3px); }
.textlink .ic { transition: transform 300ms var(--ease); }

.chip {
  display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; line-height: 1;
  padding: 4px 6px; margin-right: 6px; border: 1.5px solid currentColor; vertical-align: 2px;
}
.chip--light { color: var(--white); }
.chips { display: inline-block; white-space: nowrap; }
.chips .chip:last-child { margin-right: 0; }

/* ---------- utility + masthead ---------- */
.utility { background: var(--espresso); color: var(--white); font-size: 0.875rem; }
.utility__row { display: flex; justify-content: space-between; align-items: center; gap: 24px; padding-top: 10px; padding-bottom: 10px; }
.utility__item { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; font-variant-numeric: tabular-nums; }
.utility__item .ic { width: 16px; height: 16px; color: var(--rose); }
.utility__phone { font-weight: 700; }
.utility__short { display: none; }

.masthead { background: var(--white); position: relative; z-index: 50; }
.masthead__row { display: flex; align-items: center; gap: 28px; padding-top: 14px; padding-bottom: 14px; }
.lockup { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; margin-right: auto; }
.lockup__mark { width: 52px; height: auto; }
.lockup__word { font-weight: 700; font-size: 1.6rem; letter-spacing: -0.04em; color: var(--espresso); line-height: 1; }
.lockup__red { color: var(--red); }
.nav { display: flex; gap: 26px; }
.nav a { text-decoration: none; white-space: nowrap; font-size: 0.95rem; font-weight: 700; padding: 6px 0; background: linear-gradient(var(--red), var(--red)) no-repeat 0 100% / 0 2px; transition: background-size 300ms var(--ease); }
.nav a:hover { background-size: 100% 2px; }
.nav a[aria-current="page"] { background-size: 100% 2px; color: var(--red); }

/* ---------- hero ---------- */
/* the red barn: hand-painted (art/barn-v8, derived by tools/barn_v8.py); its wall eases into the CSS red below.
   The footer barn is the same painting at dusk. */
.hero { color: var(--white); position: relative; overflow-x: clip;
  background: linear-gradient(var(--white) 0 120px, var(--red) 120px); }
.crown { position: absolute; inset: 0 0 auto; height: 100%; overflow: hidden; pointer-events: none; user-select: none; }
.crown img { position: absolute; top: 0; left: 50%; width: 2304px; max-width: none; height: auto; margin-left: -1152px; }
.hero__grid { display: grid; grid-template-columns: 1.12fr 0.88fr; gap: 56px; align-items: start; padding-top: 348px; padding-bottom: 72px; position: relative; z-index: 2; }
.hero__title { font-size: clamp(3rem, 5.2vw, 4.7rem); max-width: 11em; }
.hero__lede { font-size: 1.2rem; line-height: 1.55; max-width: 50ch; margin-top: 22px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 34px; }
.hero__proof { margin-top: 30px; padding-top: 16px; border-top: 1px solid rgba(255, 255, 255, 0.4); font-size: 0.92rem; font-weight: 700; color: var(--white); display: flex; flex-wrap: wrap; row-gap: 4px; }
.hero__proof span { white-space: nowrap; }
.hero__proof span + span::before { content: "·"; margin: 0 10px; color: var(--rose); }
/* the tart is pinned over the foot of the barn wall: it hangs past the red into the white below,
   where its gallery label sits. Wider than its column by up to 88px, toward the page edge. */
.hero__plate { position: relative; justify-self: start; align-self: end; width: calc(100% + clamp(0px, (100vw - var(--wrap)) / 2, 88px)); margin-bottom: -250px; }
.hero__plate .caption { color: var(--espresso); }

.hero__plate > img { width: 100%; aspect-ratio: 0.86; object-fit: cover; object-position: 50% 45%; border: 8px solid var(--white); }

/* ---------- season ---------- */
.season { padding: 104px 0 96px; }
.season__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 72px; align-items: center; }
.season__pies { display: grid; grid-template-columns: 1.25fr 1fr; grid-template-rows: auto auto auto; gap: 16px; position: relative; }
.pie img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.pie--a { grid-row: 1 / span 2; }
.pie--a img { aspect-ratio: auto; height: 100%; }
.pielist { grid-column: 1 / -1; background: var(--espresso); color: var(--white); padding: 22px 26px; display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: baseline; }
.pielist__head { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rose); white-space: nowrap; }
/* a plain comma-run, so no separator is ever stranded at the end of a line */
.pielist__items { list-style: none; margin: 0; padding: 0; font-weight: 700; line-height: 1.7; }
.pielist__items li { display: inline; white-space: nowrap; } /* names never split; lines break between them */
.pielist__items li:not(:last-child)::after { content: ","; color: var(--rose); }
.pielist p:not(.pielist__head) { color: var(--white); }

.bandhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; margin-bottom: 44px; }
.bandhead > .lede { margin-top: 0; max-width: 40ch; }
.bandhead--end { margin-bottom: 0; align-items: center; }

/* ---------- ingredients: the label panel ---------- */
.ingredients { background: var(--espresso); color: var(--white); padding: 104px 0; }
.ingredients__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; align-items: center; }
.ingredients__photo img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.panel { background: var(--white); color: var(--espresso); padding: 34px 38px 30px; margin-left: -64px; position: relative; border-top: 14px solid var(--red); }
.panel__kicker { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.panel__title { font-size: clamp(2.4rem, 4vw, 3.4rem); margin-top: 6px; padding-bottom: 14px; border-bottom: 8px solid var(--espresso); }
.panel__rows { margin: 0; }
.panel__row { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid var(--rule-strong); }
.panel__row dt { font-weight: 700; }
.panel__row dd { margin: 0; text-align: right; }
.panel__row--total { border-bottom: 0; border-top: 4px solid var(--espresso); margin-top: -1px; }
.panel__row--total dd { font-weight: 700; color: var(--red); }
.panel__note { margin-top: 20px; padding: 14px 16px; background: var(--espresso); color: var(--white); font-size: 0.92rem; }

/* ---------- cakes ---------- */
.cakes { padding: 112px 0; }
.cakes__grid { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 72px; align-items: center; }
.flavors { list-style: none; margin: 30px 0 36px; padding: 0; border-top: 2px solid var(--espresso); }
.flavors li { padding: 15px 0; border-bottom: 1px solid var(--rule-strong); font-size: 1rem; }
.flavors li strong { display: block; font-size: 1.08rem; }
.flavors .chip { margin: 6px 4px 0 0; color: var(--red); }
.cakes__photos { display: grid; grid-template-columns: 1.15fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap: 14px; height: 640px; }
.cakes__photos figure { overflow: hidden; }
.cakes__photos img { width: 100%; height: 100%; object-fit: cover; }
.cakes__big { grid-row: 1 / span 2; }
.cakes__photos figure:nth-child(2) { grid-column: 2 / span 2; }

/* ---------- maker ---------- */
.maker { background: var(--white); padding: 112px 0; }
.maker__grid { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 80px; align-items: center; }
.maker__photo img { width: 100%; aspect-ratio: 0.85; object-fit: cover; }
.maker__copy > p { font-size: 1.12rem; max-width: 50ch; margin-top: 20px; text-wrap: pretty; }
.maker__copy > .kicker { margin-top: 0; }
.maker__copy > .h2 + p { margin-top: 24px; }
.maker__grid--flat { border-top: 0; padding-top: 0; }
.quote { margin: 30px 0 34px; padding: 4px 0 4px 26px; border-left: 4px solid var(--red); }
.quote p { font-size: 1.45rem; line-height: 1.35; font-weight: 700; letter-spacing: -0.02em; max-width: 30ch; }
.quote cite { display: block; margin-top: 10px; font-style: normal; font-size: 0.9rem; color: var(--red); font-weight: 700; }

/* ---------- press: the clipping and the ledger ---------- */
.press { background: var(--espresso); color: var(--white); padding: 112px 0; }
.press__layout { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 80px; align-items: center; }
.press__photos { position: relative; padding: 0 44px 64px 0; }
.press__main img { width: 100%; aspect-ratio: 1.25; object-fit: cover; border: 10px solid var(--white); }
.press__clip { position: absolute; right: 0; bottom: 0; width: 36%; transform: rotate(2deg); }
.press__clip img { width: 100%; aspect-ratio: 0.8; object-fit: cover; border: 8px solid var(--white); box-shadow: 12px 12px 0 var(--espresso-deep); }
.ledger { list-style: none; margin: 34px 0 0; padding: 0; border-top: 2px solid rgba(255, 255, 255, 0.55); }
.ledger li { display: grid; grid-template-columns: 96px 1fr; gap: 18px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid rgba(255, 255, 255, 0.2); }
.ledger__when { font-weight: 700; font-size: 1.45rem; letter-spacing: -0.02em; line-height: 1; color: var(--rose); font-variant-numeric: tabular-nums; }
.ledger__what { color: var(--rose); font-size: 1rem; line-height: 1.45; }
.ledger__what strong { display: block; color: var(--white); font-size: 1.12rem; }
.ingredients + .press { padding-top: 16px; }

/* ---------- markets ---------- */
.markets { padding: 112px 0; }
.markets__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 80px; align-items: center; }
.mk { list-style: none; margin: 34px 0 0; padding: 0; border-top: 2px solid var(--espresso); }
.mk__row { display: grid; grid-template-columns: 1.1fr 1fr 1.1fr; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--rule-strong); position: relative; font-variant-numeric: tabular-nums; }
.mk__name { font-weight: 700; font-size: 1.08rem; }
.mk__when { font-weight: 700; color: var(--red); }
.mk__note { font-size: 0.95rem; }
.markets__photo img { width: 100%; aspect-ratio: 0.85; object-fit: cover; }

/* ---------- visit ---------- */
.visit { background: var(--blush); padding: 104px 0 72px; }
.visit__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: center; }
.visit__facts { margin: 30px 0 6px; display: grid; gap: 22px; }
.visit__facts dt { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.visit__facts dd { margin: 6px 0 0; font-size: 1.12rem; font-weight: 700; line-height: 1.45; font-variant-numeric: tabular-nums; }
.visit__facts a { text-decoration: none; border-bottom: 2px solid var(--red); }
.visit__aside { font-weight: 400; font-size: 1rem; }
.visit__photo img { width: 100%; aspect-ratio: 1.3; object-fit: cover; }

/* ---------- footer ---------- */
.roofcap { /* the footer is the same barn at dusk, standing on the footer's top edge */
  position: relative; display: flex; justify-content: center; align-items: flex-end; height: 312px; background: var(--cap-bg, var(--white)); overflow: hidden; }
.roofcap img { display: block; width: 1920px; max-width: none; height: auto; flex: none; }
.footer { background: var(--espresso-deep); color: var(--white); padding: 24px 0 0; }
.footer__grid { display: grid; grid-template-columns: 1.2fr 0.8fr 1.2fr 1fr; gap: 48px; padding-bottom: 56px; }
.footer__word { font-weight: 700; font-size: 1.7rem; letter-spacing: -0.04em; margin-top: 18px; }
.footer__word .lockup__red { color: var(--rose); }
.footer__line { color: var(--rose); margin-top: 6px; }
.footer__head { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--rose); margin-bottom: 14px; }
.footer__nav { display: flex; flex-direction: column; gap: 8px; }
.footer__nav a, .footer__col a { text-decoration: none; }
.footer__nav a:hover, .footer__col a:hover { text-decoration: underline; text-underline-offset: 4px; }
.footer__col p { margin-bottom: 14px; line-height: 1.55; }
.social { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.footer__cta { margin-top: 10px; }
.footer__base { border-top: 1px solid rgba(255, 255, 255, 0.18); padding-top: 18px; padding-bottom: 22px; font-size: 0.85rem; color: var(--rose); display: flex; justify-content: space-between; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.footer__base a { text-decoration: none; }

.stickybar { display: none; }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
  .crown img { width: 1984px; margin-left: -992px; }
  .hero__grid { padding-top: 300px; }
}
@media (max-width: 1020px) {
  .hero__grid, .season__grid, .cakes__grid, .maker__grid, .markets__grid, .visit__grid, .ingredients__grid { grid-template-columns: 1fr; gap: 48px; }
  .hero__plate { justify-self: start; width: min(100%, 560px); margin-bottom: -200px; }
  .hero__grid { padding-bottom: 64px; }

  .panel { margin-left: 0; margin-top: -48px; width: calc(100% - 32px); justify-self: center; }
  .press__layout { grid-template-columns: 1fr; gap: 48px; }
  .footer__grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .footer__base { padding-bottom: 96px; } /* room for the sticky order bar */
  .utility__row { gap: 4px; }
  .utility__addr { display: none; }
  .utility__item { font-size: 0.8rem; }
  .utility__item:first-child { max-width: 62%; }
  .masthead__row { padding-top: 10px; padding-bottom: 10px; }
  .masthead__cta { display: none; }
  .lockup__mark { width: 40px; }
  .lockup__word { font-size: 1.32rem; }
  .hero { background: linear-gradient(var(--white) 0 40px, var(--red) 40px); }
  .crown img { width: 648px; margin-left: -324px; }
  .hero__grid { padding-top: 176px; padding-bottom: 56px; gap: 40px; }
  .roofcap { height: 129px; }
  .roofcap img { width: 480px; }
  .hero__title { font-size: 3.05rem; }
  .hero__lede { font-size: 1.05rem; margin-top: 18px; }
  .hero__actions { margin-top: 24px; }
  .hero__actions .btn { flex: 1 1 auto; justify-content: center; }
  .hero__plate { width: calc(100% - 18px); margin-bottom: -190px; }

  .hero__plate > img { aspect-ratio: 1; border-width: 6px; }
  .hero__proof { flex-direction: column; }
  .hero__proof span + span::before { content: none; }
  .utility__phone { padding: 14px 0; margin: -8px 0; }
  .textlink { padding: 10px 0 6px; }
  .hero__actions .textlink, .closer__actions .textlink { padding: 13px 0 9px; }
  .season, .ingredients, .cakes, .press, .markets, .visit { padding: 68px 0; }
  .maker { padding: 68px 0; }
  .maker__grid { gap: 32px; }
  .pielist { grid-template-columns: 1fr; gap: 10px; }
  .bandhead, .bandhead--end { flex-direction: column; align-items: flex-start; margin-bottom: 28px; }
  .bandhead--end { margin-bottom: 0; }
  .panel { padding: 26px 22px 22px; width: calc(100% - 20px); }
  .panel__row { flex-direction: column; gap: 2px; }
  .panel__row dd { text-align: left; }
  .cakes__photos { height: 420px; grid-template-columns: 1.2fr 1fr; }
  .cakes__photos figure:nth-child(2) { grid-column: 2; }
  .cakes__photos figure:nth-child(4) { display: none; }
  .quote p { font-size: 1.22rem; }
  .press__photos { padding: 0 24px 44px 0; }
  .press__clip { width: 40%; }
  .ledger li { grid-template-columns: 72px 1fr; gap: 12px; }
  .ledger__when { font-size: 1.2rem; }
  .mk__row { grid-template-columns: 1fr; gap: 2px; }
  .markets__photo img { aspect-ratio: 1.1; object-position: 50% 30%; }
  /* footer on phones: grouped rather than stacked; every link keeps a ~44px row */
  .footer__grid { grid-template-columns: 1fr; gap: 30px; padding-bottom: 36px; }
  .footer__head { margin-bottom: 6px; }
  .footer__nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; }
  .footer__nav .footer__head { grid-column: 1 / -1; }
  .footer__nav a { padding: 10px 0; }
  .footer__col p { margin-bottom: 10px; }
  .footer__col p:has(a) { line-height: 1.9; }
  .footer__col p a, .footer__base a { display: inline-block; padding: 11px 0; margin: -6px 0; }
  .footer__col:last-child { display: flex; flex-wrap: wrap; align-items: center; column-gap: 28px; }
  .footer__col:last-child .footer__head { flex-basis: 100%; }
  .social { margin-bottom: 0; padding: 10px 0; }
  .footer__cta { flex-basis: 100%; justify-content: center; margin-top: 16px; }
  .stickybar { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; position: fixed; left: 10px; right: 10px; bottom: 10px; z-index: 40; }
  .stickybar a { display: flex; align-items: center; justify-content: center; gap: 10px; text-decoration: none; font-weight: 700; font-size: 1.05rem; padding: 17px 18px; outline: 3px solid var(--white); }
  .stickybar__call { background: var(--red); color: var(--white); }
  .stickybar__map { background: var(--espresso); color: var(--white); }
  .mnav-open .stickybar { display: none; }
  /* the bar waits until the hero's own order button has scrolled away */
  .js .stickybar { transform: translateY(calc(100% + 24px)); visibility: hidden; transition: transform 350ms var(--ease), visibility 0s 350ms; }
  .js .stickybar.is-on { transform: none; visibility: visible; transition: transform 350ms var(--ease); }
}

/* =====================================================================
   INNER PAGES (menu, pies & cakes, seasonal pies, celebrate, our story, visit & order)
   Shared parts: bands, menu lists, tiles, steps, questions, offers, forms, timeline.
   ===================================================================== */

.preview-flag { background: var(--red-wash); color: var(--red); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.06em; text-align: center; padding: 7px 16px; }

/* utility page head (thanks, 404): the barn, smaller, title centred under the gable */
.pagehead { position: relative; color: var(--white); overflow-x: clip; background: linear-gradient(var(--white) 0 80px, var(--red) 80px); }
.pagehead .crown img { width: 2200px; margin-left: -1100px; }
.pagehead__inner { position: relative; z-index: 2; padding-top: 280px; padding-bottom: 76px; text-align: center; display: flex; flex-direction: column; align-items: center; }
.pagehead__title { font-weight: 700; text-transform: lowercase; letter-spacing: -0.035em; line-height: 1.02; margin: 0; font-size: clamp(2.6rem, 5vw, 4.4rem); max-width: 14ch; }
.pagehead__lede { font-size: 1.18rem; line-height: 1.55; max-width: 52ch; margin-top: 20px; }
.pagehead .hero__actions { justify-content: center; }

/* in-page jump list (menu, pies) */
.jumps { position: sticky; top: 0; z-index: 30; background: var(--white); border-bottom: 2px solid var(--espresso); }
.jumps__row { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-top: 12px; padding-bottom: 12px; }
.jumps__row::-webkit-scrollbar { display: none; }
.jumps a { flex: none; text-decoration: none; font-weight: 700; font-size: 0.9rem; padding: 10px 14px; color: var(--espresso); transition: color 250ms var(--ease); }
.jumps a:first-child { padding-left: 0; }
.jumps a:hover { color: var(--red); }

/* generic band */
.band { padding: 96px 0; scroll-margin-top: 70px; }
.band--blush { background: var(--blush); }
.band--espresso { background: var(--espresso); color: var(--white); }
.band--tight { padding: 72px 0; }

/* menu category: photo column + label list */
.mcat { display: grid; grid-template-columns: 0.82fr 1.18fr; gap: 64px; align-items: start; }
.mcat--flip { grid-template-columns: 1.18fr 0.82fr; }
.mcat--flip .mcat__photos { order: 2; }
.mcat__photos { display: grid; gap: 14px; position: sticky; top: 92px; }
.mcat__photos--two { grid-template-columns: 1fr 1fr; }
.mcat__photos img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.mcat__photos figure:first-child:last-child img, .mcat__photos--tall img { aspect-ratio: 0.82; }
.mcat__photos--two figure:first-child { grid-column: 1 / -1; }
/* crop anchors for photos whose subject sits off-centre */
.pos-top img { object-position: 0 0; }
.pos-left img { object-position: 12% 50%; }
.mcat__photos--two figure:first-child img { aspect-ratio: 1.25; }
.mcat__photos--pair { grid-template-columns: 1fr 1fr; }
.mcat__photos--pair img { aspect-ratio: 0.8; }
.mcat__cap { margin-top: 8px; font-size: 0.85rem; font-weight: 700; color: var(--red); }

/* the label list: one framed counter card per page, the rest open lists under a single rule */
.label { background: var(--white); color: var(--espresso); border: 1.5px solid var(--espresso); padding: 26px 30px 18px; }
.label--open { background: transparent; border: 0; padding: 0; }
.label__kicker { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.label__title { font-weight: 700; text-transform: lowercase; letter-spacing: -0.035em; line-height: 1.02; margin: 4px 0 0; font-size: clamp(2rem, 3.4vw, 2.9rem); padding-bottom: 12px; border-bottom: 6px solid var(--espresso); }
.label--open .label__title { padding-bottom: 14px; border-bottom-width: 2px; }
.label__note { font-size: 0.95rem; margin-top: 12px; }
.items { list-style: none; margin: 0; padding: 0; }
.item { display: grid; grid-template-columns: 1fr auto; gap: 4px 20px; padding: 15px 0; border-bottom: 1px solid var(--rule-strong); }
.item:last-child { border-bottom: 0; }
.item__name { font-weight: 700; font-size: 1.06rem; line-height: 1.3; }
.item__name .chip { color: var(--red); margin: 0 0 0 8px; vertical-align: 1px; }
.item__desc { grid-column: 1; font-size: 0.95rem; line-height: 1.5; max-width: 60ch; }
.item__price { grid-column: 2; grid-row: 1; font-weight: 700; font-size: 1.12rem; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; text-align: right; white-space: nowrap; }
.item__price small { display: block; font-size: 0.78rem; font-weight: 700; color: var(--red); letter-spacing: 0.02em; }
.items--cols { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; }
.items--cols .item:nth-last-child(2):nth-child(odd) { border-bottom: 0; }
.label__foot { margin-top: 6px; padding-top: 14px; border-top: 2px solid var(--espresso); font-size: 0.9rem; display: flex; flex-wrap: wrap; gap: 8px 18px; justify-content: space-between; }
.label__foot .chip { color: var(--red); }
.label--open .label__foot { border-top: 1px solid var(--rule-strong); }

/* photo tiles with a hanging tag (pies, cakes) */
.tiles { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.tiles--3 { grid-template-columns: repeat(3, 1fr); }
.tile { position: relative; }
.tile img { width: 100%; aspect-ratio: 0.9; object-fit: cover; }
.tile__tag { margin-top: 10px; font-weight: 700; font-size: 0.98rem; line-height: 1.3; }
.tile__tag small { display: block; font-weight: 400; font-size: 0.85rem; }
/* one tile leads: tall on the left, two beside it, the last one wide beneath them */
.tiles--lead { grid-template-columns: 1.6fr 1fr 1fr; grid-template-areas: "a b c" "a d d"; }
.tiles--lead .tile:nth-child(1) { grid-area: a; display: flex; flex-direction: column; }
.tiles--lead .tile:nth-child(2) { grid-area: b; }
.tiles--lead .tile:nth-child(3) { grid-area: c; }
.tiles--lead .tile:nth-child(4) { grid-area: d; }
.tiles--lead .tile img { aspect-ratio: 1.1; }
.tiles--lead .tile:nth-child(1) img { flex: 1 1 auto; height: 0; min-height: 0; aspect-ratio: auto; }
.tiles--lead .tile:nth-child(4) img { aspect-ratio: 2.25; }
/* a wide food picture that opens a section, labelled like a print on a wall */
.interlude { position: relative; margin: 0 0 52px; }
.interlude img { width: 100%; aspect-ratio: 2.3; object-fit: cover; }
.caption--tag { position: absolute; right: 24px; bottom: 24px; margin: 0; padding: 12px 16px 11px; background: var(--white); border-top: 0; color: var(--espresso); }
.label--wide .label__title { max-width: none; }
/* seasons: three pies edge to edge, the season's fruit doing the talking */
.seasons { padding-bottom: 0; }
.strip { list-style: none; margin: 56px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.strip li { position: relative; }
.strip img { width: 100%; aspect-ratio: 1.15; object-fit: cover; }
.namelist { list-style: none; margin: 26px 0 0; padding: 18px 0 0; border-top: 2px solid var(--espresso); display: flex; flex-wrap: wrap; gap: 8px 0; font-weight: 700; font-size: 1.05rem; }
.namelist li:not(:last-child)::after { content: "·"; margin: 0 12px; color: var(--red); }
.split { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items: center; }
.split--rev { grid-template-columns: 1.1fr 0.9fr; }
.split--rev > :first-child { order: 2; }
.split--top { align-items: start; }
.framed img { width: 100%; object-fit: cover; }

/* steps: numbered columns under one rule, no boxes */
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 48px; border-top: 2px solid var(--espresso); counter-reset: step; }
.step { padding: 26px 0 0; counter-increment: step; }
.step::before { content: counter(step); display: block; font-weight: 700; font-size: 2.6rem; line-height: 1; letter-spacing: -0.04em; color: var(--red); margin-bottom: 12px; }
.step__title { font-weight: 700; font-size: 1.18rem; margin: 0 0 6px; }
.step p { font-size: 0.98rem; }

/* FAQ: plain disclosure rows */
.faq { border-top: 2px solid var(--espresso); }
.faq details { border-bottom: 1px solid var(--rule-strong); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px 0; font-weight: 700; font-size: 1.08rem; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; flex: none; display: grid; place-items: center; font-size: 1.6rem; font-weight: 400; line-height: 1; color: var(--red); transition: transform 300ms var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq details > p { padding: 0 0 20px; max-width: 64ch; }
.band--espresso .faq { border-top-color: var(--white); }
.band--espresso .faq details { border-bottom-color: rgba(255, 255, 255, 0.25); }
.band--espresso .faq summary::after { color: var(--rose); }
.band--espresso .faq a { color: var(--white); }

/* offers (events, catering, hotels, shipping): titled columns under hairlines, no icon cards */
.offers { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 36px 40px; }
.offers--4 { grid-template-columns: repeat(4, 1fr); }
.offer { color: var(--espresso); padding: 22px 0 0; display: flex; flex-direction: column; gap: 10px; border-top: 1px solid var(--rule-strong); }
.offer > .ic { display: none; }
.offer__title { margin: 0; font-size: 1.3rem; line-height: 1.25; letter-spacing: -0.02em; }
.offer p { font-size: 0.98rem; }
.offer .textlink { margin-top: auto; align-self: flex-start; }
.offer__links { margin-top: auto; display: flex; flex-wrap: wrap; gap: 6px 22px; }
.offer__links .textlink { margin-top: 0; }
.band--espresso .offer { color: var(--white); border-top-color: rgba(255, 255, 255, 0.45); }
.band--espresso .offer p { color: var(--rose); }
.band--espresso .offer .textlink { color: var(--white); border-bottom-color: var(--white); }
.band--espresso .offer .textlink:hover { color: var(--rose); }


/* request forms (pies; cakes, catering, gift boxes, events) */
.form { background: var(--white); border: 1px solid var(--rule-strong); padding: 36px 36px 30px; }
.form__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 20px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field--full { grid-column: 1 / -1; }
.field label, .field legend { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); }
.field input, .field select, .field textarea { font: inherit; font-size: 1rem; color: var(--espresso); background: var(--white); border: 1px solid var(--rule-strong); border-radius: 0; padding: 13px 14px; width: 100%; }
.field textarea { min-height: 120px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: var(--espresso); }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--red); outline-offset: 0; border-color: var(--red); }
.choice { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.choice__row { display: flex; flex-wrap: wrap; gap: 8px; }
.choice__row label { position: relative; cursor: pointer; }
.choice__row input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.choice__row span { display: inline-block; padding: 10px 16px; border: 1px solid var(--rule-strong); font-weight: 700; font-size: 0.95rem; letter-spacing: 0; text-transform: none; color: var(--espresso); transition: background-color 250ms var(--ease), color 250ms var(--ease); }
.choice__row input:checked + span { background: var(--red); border-color: var(--red); color: var(--white); }
.choice__row input:focus-visible + span { outline: 3px solid var(--red); outline-offset: 2px; }
.form__foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--rule-strong); }
.form__foot p { font-size: 0.92rem; max-width: 42ch; }
.hp { display: none; } /* Netlify honeypot: hidden from people and screen readers, still in the form for bots */
.field__hint { font-size: 0.85rem; }
.form__error { flex-basis: 100%; padding: 12px 14px; border-left: 4px solid var(--red); background: var(--red-wash); color: var(--espresso); font-weight: 700; }
.form__error a { color: var(--red); }
.btn[disabled] { opacity: 0.7; cursor: progress; }
/* pie quantities: a counter-card list with a number box per pie */
.qtys { border: 0; padding: 0; margin: 0; }
.qtys legend { margin-bottom: 12px; }
.qtys__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 28px; border-top: 2px solid var(--espresso); }
.qty { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid var(--rule-strong); }
.qty label { font-size: 1rem; font-weight: 700; letter-spacing: 0; text-transform: none; color: var(--espresso); }
.qty input { width: 72px; flex: none; text-align: center; padding: 9px 6px; }
.qtys__error { margin-top: 10px; color: var(--red); font-weight: 700; }
.choice__row input[type=checkbox] + span { position: relative; }

/* story timeline */
.timeline { list-style: none; margin: 0; padding: 0; position: relative; }
.timeline::before { content: ""; position: absolute; left: 148px; top: 8px; bottom: 8px; width: 2px; background: var(--espresso); }
.tl { display: grid; grid-template-columns: 148px 1fr; gap: 0 36px; padding: 0 0 34px; position: relative; }
.tl::before { content: ""; position: absolute; left: 138px; top: 2px; width: 22px; height: 22px; border-radius: 50%; background: var(--red); background-clip: padding-box; border: 4px solid var(--white); }
.band--blush .tl::before { border-color: var(--blush); }
.tl__when { font-weight: 700; font-size: 0.82rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); padding-top: 3px; padding-right: 18px; text-align: right; }
.tl__what { padding-left: 4px; }
.tl__what strong { display: block; font-size: 1.15rem; margin-bottom: 4px; }
.tl__what p { max-width: 58ch; }

/* opening hours list */
.hours { list-style: none; margin: 0; padding: 0; }
.hours li { display: flex; justify-content: space-between; gap: 18px; padding: 3px 0; }
.hours li span:last-child { font-weight: 700; }

.prose > p + p { margin-top: 14px; }
.prose > p { font-size: 1.08rem; max-width: 60ch; }
.center { text-align: center; }
.center .h2, .center .lede { margin-left: auto; margin-right: auto; }
.mt-l { margin-top: 48px; }
.mt-m { margin-top: 32px; }

@media (max-width: 1100px) {
  .pagehead .crown img { width: 1800px; margin-left: -900px; }
  .pagehead__inner { padding-top: 228px; }
  .tiles:not(.tiles--3) { grid-template-columns: repeat(2, 1fr); }
  .tiles--lead { grid-template-areas: "a a" "b c" "d d"; }
  .tiles--lead .tile:nth-child(1) img { flex: none; height: auto; aspect-ratio: 1.45; }
  .tiles--lead .tile:nth-child(4) img { aspect-ratio: 2; }
  .offers--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1020px) {
  .mcat, .mcat--flip, .split, .split--rev { grid-template-columns: 1fr; gap: 36px; }
  .mcat--flip .mcat__photos, .split--rev > :first-child { order: 0; }
  .mcat__photos { position: static; }
  .offers { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .pagehead { background: linear-gradient(var(--white) 0 40px, var(--red) 40px); }
  .pagehead .crown img { width: 648px; margin-left: -324px; }
  .pagehead__inner { padding-top: 176px; padding-bottom: 56px; }
  .pagehead__title { font-size: 2.6rem; }
  .pagehead__lede { font-size: 1.04rem; }
  .band { padding: 64px 0; scroll-margin-top: 64px; }
  .label { padding: 20px 18px 12px; }
  .label--open { padding: 0; }
  .item__desc { font-size: 1rem; }
  .mcat__photos--single img { aspect-ratio: 1.25; }
  /* phones: one photo per menu section keeps the list from becoming an endless scroll */
  .mcat__photos--two figure:not(:first-child) { display: none; }
  .items--cols { grid-template-columns: 1fr; }
  .items--cols .item:nth-last-child(2):nth-child(odd) { border-bottom: 1px solid var(--rule-strong); }
  .mcat__photos--two { grid-template-columns: 1fr 1fr; }
  .tiles, .tiles--3 { grid-template-columns: 1fr 1fr; gap: 12px; }
  .tiles--lead .tile:nth-child(1) img { aspect-ratio: 1.2; }
  .strip { grid-template-columns: 1fr 1fr; margin-top: 36px; }
  .strip li:first-child { grid-column: 1 / -1; }
  .strip li:first-child img { aspect-ratio: 1.4; }
  .interlude { margin-bottom: 32px; margin-left: calc(-1 * var(--gut)); margin-right: calc(-1 * var(--gut)); }
  .interlude img { aspect-ratio: 1.45; }
  .caption--tag { right: 12px; bottom: 12px; padding: 9px 12px 8px; }
  .tiles--3 .tile:first-child { grid-column: 1 / -1; }
  .tiles--3 .tile:first-child img { aspect-ratio: 1.3; }
  .tile__tag { font-size: 0.9rem; margin-top: 8px; }
  .steps { grid-template-columns: 1fr; }
  /* phones: numeral beside the title, so three steps read as one short list before the form */
  .step { display: grid; grid-template-columns: 34px 1fr; column-gap: 10px; border-top: 1px solid var(--rule-strong); padding: 16px 0 16px; }
  .step:first-child { border-top: 0; }
  .step::before { grid-row: 1 / span 2; font-size: 1.7rem; margin: 0; }
  .step > * { grid-column: 2; }
  .step__title { margin-bottom: 4px; }
  .offers, .offers--4 { grid-template-columns: 1fr; }
  .form { padding: 24px 18px 22px; }
  .form__grid { grid-template-columns: 1fr; }
  .timeline::before { left: 8px; }
  .tl { grid-template-columns: 1fr; gap: 4px; padding-left: 36px; }
  .tl::before { left: -2px; }
  .tl__when { text-align: left; padding-right: 0; }
  .jumps a { font-size: 0.85rem; }
  .qtys__grid { grid-template-columns: 1fr; }
  /* name lists read as two tidy columns on phones instead of dot-separated runs */
  .namelist, .pielist__items { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; }
  .namelist li:not(:last-child)::after, .pielist__items li:not(:last-child)::after { content: none; }
  .pielist__items li { white-space: normal; }
}

/* ---------- mobile + tablet menu (under 1020px) ---------- */
.mnav { display: none; }
html.mnav-open { overflow: hidden; } /* page stays put while the menu is open */
.mnav__toggle { list-style: none; cursor: pointer; display: inline-flex; align-items: center; gap: 10px; padding: 12px 14px; margin-right: -14px;
  font-weight: 700; font-size: 0.95rem; color: var(--espresso); }
.mnav__toggle::-webkit-details-marker { display: none; }
.mnav__bars { position: relative; width: 22px; height: 14px; display: inline-block; }
.mnav__bars::before, .mnav__bars::after, .mnav__bars span { content: ""; position: absolute; left: 0; right: 0; height: 2px; background: currentColor; transition: transform 300ms var(--ease), opacity 250ms var(--ease); }
.mnav__bars::before { top: 0; }
.mnav__bars span { top: 6px; }
.mnav__bars::after { top: 12px; }
.mnav[open] .mnav__bars::before { transform: translateY(6px) rotate(45deg); }
.mnav[open] .mnav__bars::after { transform: translateY(-6px) rotate(-45deg); }
.mnav[open] .mnav__bars span { opacity: 0; }
.mnav__panel { position: absolute; left: 0; right: 0; top: 100%; background: var(--white); border-top: 2px solid var(--espresso); border-bottom: 2px solid var(--espresso);
  padding: 22px var(--gut) 28px; max-height: calc(100vh - 120px); overflow-y: auto; }
.mnav__links { display: flex; flex-direction: column; }
.mnav__links a { text-decoration: none; font-weight: 700; font-size: 1.9rem; letter-spacing: -0.035em; line-height: 1.1; padding: 10px 0; border-bottom: 1px solid var(--rule); color: var(--espresso); }
.mnav__links a[aria-current="page"] { color: var(--red); }
.mnav__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.mnav__actions .btn { flex: 1 1 220px; justify-content: center; }
.mnav__info { margin-top: 18px; font-size: 0.92rem; line-height: 1.5; }
/* the full desktop nav needs room; below 1180px the menu button takes over */
@media (max-width: 1180px) {
  .nav { display: none; }
  .mnav { display: block; }
  .masthead__cta { padding: 13px 18px; font-size: 0.92rem; }
}
@media (max-width: 1020px) {
  .utility__addr { display: none; }
  .utility__phone { white-space: nowrap; }
  .split .framed img { max-height: 520px; }
}
@media (max-width: 420px) {
  .utility__long { display: none; }
  .utility__short { display: inline; }
}
@media (max-width: 360px) {
  .lockup { gap: 8px; }
  .lockup__mark { width: 34px; }
  .lockup__word { font-size: 1.12rem; white-space: nowrap; }
  .mnav__toggle { gap: 8px; }
  .pielist__items { grid-template-columns: 1fr; gap: 6px; } /* the smallest phones: one pie per line */
}

/* ---------- closing order band (inner pages) ---------- */
.closer { background: var(--white); padding: 64px 0; border-top: 1px solid var(--rule); }
.closer__row { display: flex; align-items: center; justify-content: space-between; gap: 24px 40px; flex-wrap: wrap; }
.closer__title { font-weight: 700; text-transform: lowercase; letter-spacing: -0.03em; line-height: 1.05; font-size: clamp(1.7rem, 2.8vw, 2.4rem); max-width: 18ch; text-wrap: balance; }
.closer__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 18px; }
@media (max-width: 640px) {
  .closer { padding: 44px 0; }
  .closer__actions { width: 100%; }
  .closer__actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* ---------- signature: the breakfast cookie, then a quiet shelf ---------- */
.sig { background: var(--blush); padding: 0 0 104px; }
/* a feature, not a product block: the cookies run off the left edge and fill the band's height;
   the copy column lines up with the page wrap (it is 42.5% of the band) */
.sig__grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 0; align-items: stretch; max-width: none; padding: 0; }
.sig__photo { position: relative; }
.sig__photo img { width: 100%; height: 100%; min-height: 660px; object-fit: cover; object-position: 50% 45%; }
.sig__copy { align-self: center; padding: 104px max(var(--gut), calc(117.65% - var(--wrap) / 2 + var(--gut))) 72px 72px; }
.sig__kicker { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red); margin-bottom: 12px; }
.sig .h2 { font-size: clamp(2.6rem, 5vw, 4.6rem); max-width: 9ch; }
.sig__prices { margin: 30px 0 34px; border-top: 2px solid var(--espresso); }
.sig__prices > div { display: flex; justify-content: space-between; align-items: baseline; gap: 18px; padding: 13px 0; border-bottom: 1px solid var(--rule-strong); }
.sig__prices dt { font-weight: 700; }
.sig__prices dt .chip { color: var(--red); margin: 0 0 0 6px; }
.sig__prices dd { margin: 0; font-weight: 700; font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.sig .hero__actions { align-items: center; gap: 22px; margin-top: 0; }
.shelf { margin-top: 96px; }
.shelf__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 20px; padding-bottom: 16px; border-bottom: 2px solid var(--espresso); margin-bottom: 26px; }
.shelf__title { margin: 0; font-weight: 700; text-transform: lowercase; letter-spacing: -0.03em; font-size: clamp(1.6rem, 2.4vw, 2.1rem); }
.shelf__items { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 28px; }
.shelf__item img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.shelf__name { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; font-weight: 700; font-size: 1.04rem; line-height: 1.3; }
.shelf__name span { font-variant-numeric: tabular-nums; }
.shelf__desc { margin-top: 4px; font-size: 0.95rem; line-height: 1.45; }
.shelf__desc .chip { color: var(--red); margin: 0 0 0 4px; }
@media (max-width: 1100px) { .shelf__items { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 1020px) {
  .sig__grid { grid-template-columns: 1fr; gap: 0; }
  .sig__photo img { min-height: 0; height: auto; aspect-ratio: 1.3; }
  .sig__copy { padding: 48px var(--gut) 0; max-width: 720px; }
}
@media (max-width: 640px) {
  .sig { padding: 0 0 64px; }
  .sig__copy { padding-top: 36px; }
  .shelf { margin-top: 64px; }
  .shelf__items { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 var(--gut); gap: 14px; margin: 0 calc(-1 * var(--gut)); padding: 0 var(--gut) 4px; scrollbar-width: none; }
  .shelf__items::-webkit-scrollbar { display: none; }
  .shelf__item { flex: 0 0 72%; scroll-snap-align: start; }
}

/* =====================================================================
   PAGE HEADS: each inner page opens differently. The barn belongs to the
   homepage and the footer; inside, the food and the shop lead.
   ===================================================================== */
.ph { position: relative; overflow-x: clip; }
.ph__grid { display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 72px; align-items: center; padding-top: 64px; padding-bottom: 88px; }
.ph__kicker { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red); margin-bottom: 18px; }
.ph__title { font-weight: 700; text-transform: lowercase; letter-spacing: -0.04em; line-height: 0.98; margin: 0;
  font-size: clamp(2.8rem, 5.4vw, 4.9rem); max-width: 11ch; text-wrap: balance; }
.ph__lede { font-size: 1.18rem; line-height: 1.55; max-width: 44ch; margin-top: 24px; text-wrap: pretty; }
.ph__note { margin-top: 20px; font-size: 0.95rem; }
.ph__photo img { width: 100%; object-fit: cover; }

/* menu: a table of contents beside the pastry case */
.ph--menu { border-top: 1px solid var(--rule); }
.ph--menu .ph__grid { grid-template-columns: 1.15fr 0.85fr; }
.index { list-style: none; margin: 36px 0 0; padding: 0; max-width: 580px; border-top: 2px solid var(--espresso);
  display: grid; grid-template-rows: repeat(4, auto); grid-auto-flow: column; column-gap: 32px; }
.index li { border-bottom: 1px solid var(--rule-strong); }
.index a { display: flex; align-items: baseline; gap: 14px; padding: 13px 0; text-decoration: none; font-weight: 700; font-size: 1.02rem; transition: color 250ms var(--ease); }
.index a span { font-size: 0.75rem; letter-spacing: 0.08em; color: var(--red); font-variant-numeric: tabular-nums; }
.index a:hover { color: var(--red); }
.ph__legend { margin-top: 18px; font-size: 0.9rem; }
.ph__legend .chip { color: var(--red); }
.ph__photo--tall img { aspect-ratio: 0.8; }
.jumps--m { display: none; }

/* pies & cakes: espresso, with a whole pie running off the right edge */
.ph--pies { background: var(--espresso); color: var(--white); }
.ph--pies .ph__grid { max-width: none; padding: 0; gap: 0; grid-template-columns: 0.9fr 1.1fr; align-items: stretch; }
/* left padding lines the copy up with the page wrap: the copy column is 45% of the band */
.ph--pies .ph__copy { align-self: center; padding: 80px 56px 88px max(var(--gut), calc(111.11% - var(--wrap) / 2 + var(--gut))); }
.ph--pies .ph__title { font-size: clamp(2.8rem, 4.4vw, 4rem); max-width: 14ch; }
.ph--pies .ph__kicker { color: var(--rose); }
.ph--pies .ph__note { color: var(--rose); }
.ph__photo--flush img { height: 100%; min-height: 600px; object-position: 50% 60%; }
.ph--pies :focus-visible { outline-color: var(--white); }

/* thanksgiving: red, with the order slip clipped to a pecan pie */
.ph--season { background: var(--red); color: var(--white); }
.ph--season .ph__grid { grid-template-columns: 1fr 1fr; }
.ph--season .ph__title { font-size: clamp(2.6rem, 4.5vw, 4.1rem); max-width: 14ch; }
.ph--season :focus-visible { outline-color: var(--white); }
.slip-wrap { position: relative; padding: 0 72px 120px 0; }
.slip-photo img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 10px solid var(--white); }
.slip { position: absolute; right: 0; bottom: 0; width: min(400px, 82%); background: var(--white); color: var(--espresso); padding: 22px 26px 18px; transform: rotate(1.5deg); }
.slip__head { display: flex; flex-direction: column; font-weight: 700; font-size: 1.3rem; letter-spacing: -0.025em; line-height: 1.15; padding-bottom: 12px; border-bottom: 4px solid var(--espresso); }
.slip__head span { order: -1; font-size: 0.7rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red); margin-bottom: 6px; }
.slip__rows { margin: 0; }
.slip__row { display: grid; grid-template-columns: 112px 1fr; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--rule-strong); }
.slip__row dt { font-size: 0.7rem; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--red); padding-top: 4px; }
.slip__row dd { margin: 0; font-weight: 700; font-size: 0.98rem; line-height: 1.4; font-variant-numeric: tabular-nums; }
.slip__foot { padding-top: 10px; font-size: 0.82rem; }

/* celebrate: blush, with three cakes pinned up like prints */
.ph--cake { background: var(--blush); }
.ph--cake .ph__grid { padding-top: 72px; }
.pinned { position: relative; height: 620px; }
.pinned figure { position: absolute; }
.pinned img { width: 100%; height: 100%; object-fit: cover; border: 8px solid var(--white); }
.pinned__a { left: 0; top: 48px; width: 54%; height: 60%; transform: rotate(-2deg); z-index: 2; }
.pinned__b { right: 0; top: 0; width: 46%; height: 68%; transform: rotate(1.5deg); }
.pinned__c { left: 30%; bottom: 0; width: 42%; height: 44%; transform: rotate(-0.5deg); z-index: 3; }

/* our story: Randell first, like the opening plate of a monograph */
.ph--story { border-top: 1px solid var(--rule); }
.ph--story .ph__grid { grid-template-columns: 0.9fr 1.1fr; gap: 88px; padding-top: 72px; padding-bottom: 96px; }
.ph--story .ph__photo { order: -1; }
.ph--story .ph__title { font-size: clamp(3rem, 6.2vw, 5.6rem); max-width: 9ch; }
.ph--story .quote { margin: 34px 0 0; }
.ph__photo--story img { aspect-ratio: 0.86; object-position: 50% 15%; }

/* visit: the café itself, with the essentials on a card */
.ph--visit { border-top: 1px solid var(--rule); }
.ph__copy--center { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 64px; }
.ph__copy--center .ph__title { max-width: 14ch; }
.ph__copy--center .ph__lede { max-width: 52ch; }
.room { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: center; margin-top: 56px; padding-bottom: 96px; }
/* the card overlaps about a fifth of the photo, leaving the windows and the table clear */
.room__img { grid-column: 1 / 10; grid-row: 1; width: 100%; aspect-ratio: 1.3; object-fit: cover; }
.room__card { grid-column: 8 / 13; grid-row: 1; position: relative; z-index: 2; background: var(--white); border: 2px solid var(--espresso); padding: 30px 32px 28px; }
.room__facts { margin: 0; display: grid; gap: 22px; }
.room__facts dt { display: flex; align-items: center; gap: 8px; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--red); }
.room__facts dd { margin: 8px 0 0; font-weight: 700; font-size: 1.1rem; line-height: 1.45; font-variant-numeric: tabular-nums; }
.room__facts dd span { display: block; font-weight: 400; font-size: 0.95rem; }
.room__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 26px; padding-top: 22px; border-top: 1px solid var(--rule-strong); }

@media (max-width: 1100px) {
  .ph__grid { gap: 48px; }
  .ph--pies .ph__copy { padding-right: 48px; }
  .pinned { height: 520px; }
}
@media (max-width: 1020px) {
  .jumps--m { display: block; }
  .ph__grid, .ph--menu .ph__grid, .ph--season .ph__grid, .ph--story .ph__grid { grid-template-columns: 1fr; gap: 44px; padding-top: 52px; padding-bottom: 64px; }
  .ph--story .ph__photo { order: 0; }
  .ph--pies .ph__grid { grid-template-columns: 1fr; padding: 0; gap: 0; }
  .ph--pies .ph__copy { padding: 56px var(--gut) 48px; }
  .ph__photo--flush img { min-height: 0; height: auto; aspect-ratio: 1.25; }
  .ph__photo--tall img { aspect-ratio: 1.2; }
  .ph__photo--story img { aspect-ratio: 1.1; }
  .slip-wrap { max-width: 560px; }
  .pinned { max-width: 620px; }
  .room { display: block; padding-bottom: 64px; }
  .room__card { margin: -56px 18px 0; }
}
@media (max-width: 640px) {
  .ph__title, .ph--story .ph__title, .ph--season .ph__title { font-size: 2.75rem; }
  .ph--pies .ph__title { font-size: 2.55rem; max-width: none; }
  .ph__lede { font-size: 1.05rem; margin-top: 18px; }
  .ph__grid, .ph--menu .ph__grid, .ph--season .ph__grid, .ph--story .ph__grid { padding-top: 40px; padding-bottom: 52px; gap: 36px; }
  .ph .hero__actions .btn { flex: 1 1 auto; justify-content: center; }
  .index { grid-auto-flow: row; grid-template-rows: none; grid-template-columns: 1fr 1fr; column-gap: 18px; }
  .index a { font-size: 0.92rem; gap: 10px; padding: 11px 0; }
  .ph--pies .ph__copy { padding: 44px var(--gut) 40px; }
  .slip-wrap { padding: 0; }
  .slip-photo img { aspect-ratio: 1.25; border-width: 8px; }
  .slip { position: relative; right: auto; bottom: auto; width: auto; margin: -40px 12px 0; padding: 18px 18px 14px; transform: rotate(1.5deg); }
  .slip__row { grid-template-columns: 96px 1fr; gap: 10px; }
  .slip__row dd a { display: inline-block; padding: 12px 0; margin: -12px 0; }
  /* phones: one cake leads, a second is pinned over its corner, the third waits for the gallery */
  .pinned { height: auto; padding-bottom: 36px; }
  .pinned img { height: auto; border-width: 6px; }
  .pinned figure.pinned__a { position: relative; left: auto; top: auto; width: 74%; height: auto; margin-left: 2%; }
  .pinned__a img { aspect-ratio: 0.92; }
  .pinned__b { left: auto; right: 0; top: auto; bottom: 0; width: 40%; height: auto; z-index: 3; }
  .pinned__b img { aspect-ratio: 0.78; }
  .pinned__c { display: none; }
  .ph__copy--center { padding-top: 44px; }
  .room { margin-top: 36px; padding-bottom: 52px; }
  .room__img { aspect-ratio: 1.15; object-position: 50% 45%; }
  .room__card { margin: -36px 10px 0; padding: 22px 20px 20px; }
  .room__actions .btn { flex: 1 1 100%; justify-content: center; }
}

/* closed disclosures render nothing (keeps hidden FAQ answers and the closed phone menu out of layout) */
.faq details:not([open]) > :not(summary), .mnav:not([open]) > :not(summary) { display: none; }
.shelf__items:focus-visible { outline-offset: 6px; }

/* =====================================================================
   THE LABEL: two recurring ideas carry the site: the barn (hero + footer)
   and the label: small-caps kickers, hairline rules and captions under photos,
   like her price cards and a gallery wall label. Everything else stays quiet.
   ===================================================================== */
.kicker, .hero__kicker { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red); margin-bottom: 16px; }
.hero__kicker { color: var(--white); margin-bottom: 20px; text-shadow: 0 1px 2px rgba(90, 0, 10, 0.45); } /* keeps the small label clear of the brightest brushstrokes */
.ph__kicker--light, .ph--season .ph__kicker { color: var(--white); }
.caption { display: flex; flex-direction: column; gap: 2px; margin-top: 12px; padding-top: 10px; border-top: 2px solid var(--espresso); font-size: 0.85rem; line-height: 1.4; }
.caption strong { font-size: 0.92rem; }
.band--ruled { border-top: 1px solid var(--rule); }
.visit--ruled { background: var(--white); border-top: 1px solid var(--rule); }
.pagehead .ph__kicker { margin-bottom: 14px; }

/* the shelf on phones: a visible cue that it scrolls, and a way out to the full menu */
.shelf__hint, .shelf__more { display: none; }
@media (max-width: 640px) {
  .shelf__all { display: none; }
  .shelf__hint { display: inline-flex; align-items: center; gap: 6px; margin: 0; font-size: 0.85rem; font-weight: 700; color: var(--red); }
  .shelf__hint .ic { width: 16px; height: 16px; }
  .shelf__more { display: flex; margin-top: 26px; }
}


/* ---------- her hand-lettered cards, her Instagram ---------- */
.hand { list-style: none; margin: 0; padding: 0 0 56px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; }
/* her cards hung like small prints: white mats on blush, the middle one hung a little lower */
.hand img { width: 100%; aspect-ratio: 0.86; object-fit: cover; border: 10px solid var(--white); }
.hand li:nth-child(2) { margin-top: 56px; }
.band--hand .bandhead { margin-bottom: 52px; }
.ig { background: var(--blush); padding: 104px 0; }
.ig__side { display: flex; flex-direction: column; align-items: flex-start; gap: 22px; max-width: 46ch; }
.ig__side .lede { margin: 0; }
.ig__row { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.ig__row img { width: 100%; aspect-ratio: 1; object-fit: cover; }
/* one big picture, four small: the way a feed actually catches your eye */
.ig__row li:first-child { grid-column: span 2; grid-row: span 2; }
.ig__row li:first-child img { height: 100%; }
@media (max-width: 1020px) {
  .ig__row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ig__row li:nth-child(n+4) { display: none; }
}
@media (max-width: 640px) {
  .ig { padding: 64px 0; }
  /* the finest lettering gets the full width; the other two sit side by side */
  .hand { grid-template-columns: 1fr 1fr; gap: 28px 14px; padding-bottom: 0; }
  .hand li:first-child { grid-column: 1 / -1; }
  .hand li:nth-child(2) { margin-top: 0; }
  .hand img { border-width: 6px; }
  .ig__row { gap: 8px; }
}


/* =====================================================================
   HOMEPAGE: THE BARN FRONT
   The painted barn is the page's first image. Its loft sits over the headline
   and its big window, trimmed with boards cut from the same painting
   (tools/trim_v9.py), shows what's on the counter.
   ===================================================================== */
.barn { position: relative; overflow-x: clip; color: var(--white);
  background: linear-gradient(var(--white) 0 96px, var(--red) 96px); }
.barn .crown img { width: 1920px; margin-left: -960px; }
.barn__front { position: relative; z-index: 2; display: grid; justify-items: center; text-align: center; padding-top: 292px; padding-bottom: 80px; }
.barn__kicker { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.22em; text-transform: uppercase; text-shadow: 0 1px 2px rgba(90, 0, 10, 0.45); }
.barn__title { margin: 16px 0 0; font-weight: 700; text-transform: lowercase; letter-spacing: -0.048em; line-height: 0.95;
  font-size: clamp(3rem, 5.6vw, 5.1rem); white-space: nowrap; }
.barn__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 30px; }

.window { position: relative; width: 100%; margin: 48px 0 0; padding: 20px 20px 24px; }
.window img { display: block; width: 100%; aspect-ratio: 2.04; object-fit: cover; }
/* the head board throws a little shadow onto the food, the way a real window would */
.window picture { display: block; position: relative; }
.window picture::after { content: ""; position: absolute; inset: 0 0 auto; height: 26px; background: linear-gradient(rgba(42, 23, 14, 0.38), rgba(42, 23, 14, 0)); pointer-events: none; }
.window__trim { position: absolute; inset: 0 -14px; pointer-events: none;
  background:
    url("img/trim-head.png") left top / 100% 22px no-repeat,
    url("img/trim-sill.png") left 4px bottom / calc(100% - 8px) 27px no-repeat,
    url("img/trim-jamb.png") left 14px top 20px / 21px calc(100% - 44px) no-repeat,
    url("img/trim-jamb.png") right 14px top 20px / 21px calc(100% - 44px) no-repeat; }
/* the counter card, propped in the corner of the window */
.window__tag { position: absolute; right: 52px; bottom: 54px; display: flex; flex-direction: column; gap: 2px; text-align: left;
  background: var(--white); color: var(--espresso); padding: 11px 15px 10px; font-size: 0.84rem; line-height: 1.35; transform: rotate(-1.2deg); }
.window__tag strong { font-size: 0.95rem; }

.barn__foot { width: 100%; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px 56px; align-items: end; text-align: left; margin-top: 40px; }
.barn__lede { font-size: 1.15rem; line-height: 1.55; max-width: 50ch; text-wrap: pretty; }
.barn__proof { list-style: none; margin: 0; padding: 0; display: flex; gap: 40px; }
.barn__proof li { display: flex; flex-direction: column; gap: 4px; font-weight: 700; font-size: 1.05rem; line-height: 1.2; }
.barn__proof span { font-size: 0.7rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--rose); }
.barn :focus-visible { outline-color: var(--white); }

@media (max-width: 1100px) {
  .barn__front { padding-top: 280px; }
}
@media (max-width: 900px) {
  .barn__foot { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  .barn__title { white-space: normal; max-width: 11ch; }
}
@media (max-width: 640px) {
  .barn { background: linear-gradient(var(--white) 0 40px, var(--red) 40px); }
  .barn .crown img { width: 648px; margin-left: -324px; }
  .barn__front { padding-top: 172px; padding-bottom: 56px; }
  .barn__kicker { font-size: 0.72rem; letter-spacing: 0.16em; }
  .barn__title { font-size: 2.85rem; margin-top: 12px; }
  /* phones: the food comes straight after the headline; the buttons follow it */
  .window { order: 1; margin-top: 28px; padding: 12px 12px 15px; }
  .window img { aspect-ratio: 1; }
  .window picture::after { height: 16px; }
  .window__trim { inset: 0 -8px;
    background:
      url("img/trim-head.png") left top / 100% 14px no-repeat,
      url("img/trim-sill.png") left 3px bottom / calc(100% - 6px) 17px no-repeat,
      url("img/trim-jamb.png") left 8px top 12px / 13px calc(100% - 28px) no-repeat,
      url("img/trim-jamb.png") right 8px top 12px / 13px calc(100% - 28px) no-repeat; }
  .window__tag { right: 22px; bottom: 26px; padding: 8px 11px 7px; font-size: 0.78rem; }
  .window__tag strong { font-size: 0.86rem; }
  .barn__actions { order: 2; width: 100%; margin-top: 26px; }
  .barn__actions .btn { flex: 1 1 0; justify-content: center; }
  .barn__foot { order: 3; margin-top: 30px; }
  .barn__lede { font-size: 1.04rem; }
  .barn__proof { gap: 28px; }
}

/* ---------- homepage: the Thanksgiving pie board ----------
   seven pies set like the board behind a counter, beside one big photo that runs off the page */
.pieboard__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: stretch; }
/* the copy column is half the band; its left padding lines the text up with the page wrap */
.pieboard__copy { padding: 120px 72px 120px max(var(--gut), calc(100% - var(--wrap) / 2 + var(--gut))); }
.pieboard__title { margin: 0; font-weight: 700; text-transform: lowercase; letter-spacing: -0.04em; line-height: 0.98; font-size: clamp(2.4rem, 4vw, 3.6rem); max-width: 15ch; text-wrap: balance; }
.pieboard__list { list-style: none; margin: 40px 0 0; padding: 0; border-top: 2px solid var(--espresso); max-width: 520px; }
.pieboard__list li { display: flex; align-items: baseline; gap: 18px; padding: 13px 0 12px; border-bottom: 1px solid var(--rule-strong); font-weight: 700; font-size: clamp(1.2rem, 1.75vw, 1.55rem); letter-spacing: -0.022em; line-height: 1.2; }
.pieboard__no { flex: none; width: 24px; font-size: 0.72rem; letter-spacing: 0.1em; color: var(--red); font-variant-numeric: tabular-nums; }
.pieboard__note { margin-top: 22px; max-width: 46ch; }
.pieboard__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 30px; }
.pieboard__photo { position: relative; }
.pieboard__photo img { width: 100%; height: 100%; min-height: 720px; object-fit: cover; object-position: 30% 60%; }

/* ---------- homepage: the breakfast cookie ----------
   the name runs big across the band and into the top of the photo */
.cookie { background: var(--blush); padding: 112px 0 104px; }
.cookie__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 0.7fr); grid-template-areas: "title title" "photo copy"; column-gap: 64px; }
.cookie__title { grid-area: title; position: relative; z-index: 2; margin: 0 0 -0.34em; font-weight: 700; text-transform: lowercase; color: var(--espresso);
  font-size: clamp(3.2rem, 8vw, 7.4rem); letter-spacing: -0.058em; line-height: 0.86; }
.cookie__photo { grid-area: photo; }
.cookie__photo img { width: 100%; aspect-ratio: 1.28; object-fit: cover; }
.cookie__copy { grid-area: copy; align-self: start; padding-top: 84px; } /* clears the tail of the big title */
.cookie__award { display: flex; flex-direction: column; margin-bottom: 26px; color: var(--red); font-weight: 700; font-size: 3.4rem; line-height: 0.9; letter-spacing: -0.05em; font-variant-numeric: lining-nums; }
.cookie__award span { margin-bottom: 8px; font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--espresso); line-height: 1.2; }
.cookie__story { font-size: 1.04rem; max-width: 44ch; text-wrap: pretty; }
.cookie .sig__prices { margin: 26px 0 28px; }
.cookie__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; }

/* ---------- homepage: the baker ---------- */
.artist { padding: 128px 0 120px; }
.artist__grid { display: grid; grid-template-columns: minmax(0, 0.82fr) minmax(0, 1.18fr); grid-template-areas: "portrait words" "portrait hand"; gap: 0 88px; }
.artist__grid--rev { grid-template-columns: minmax(0, 1.18fr) minmax(0, 0.82fr); grid-template-areas: "words portrait" "hand portrait"; }
.artist__portrait { grid-area: portrait; }
.artist__portrait img { width: 100%; height: 100%; min-height: 640px; object-fit: cover; object-position: 50% 30%; }
.artist__words { grid-area: words; }
.artist__quote { margin: 18px 0 0; }
.artist__quote p { font-weight: 700; font-size: clamp(2rem, 3.4vw, 3.1rem); line-height: 1.06; letter-spacing: -0.038em; text-wrap: balance; hanging-punctuation: first; text-indent: -0.42em; }
.artist__quote cite { display: block; margin-top: 20px; font-style: normal; font-weight: 700; font-size: 0.76rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--red); }
.artist__bio { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 40px; padding-top: 22px; border-top: 2px solid var(--espresso); }
.artist__bio p { font-size: 1rem; line-height: 1.6; }
.artist__words .btn { margin-top: 32px; }
/* her own lettering, two cards propped at slightly different angles */
.artist__hand { grid-area: hand; list-style: none; margin: 56px 0 0; padding: 0; display: grid; grid-template-columns: 170px 170px minmax(0, 1fr); gap: 22px; align-items: end; }
.artist__hand img { width: 100%; aspect-ratio: 0.86; object-fit: cover; }
.artist__hand li:nth-child(1) { transform: rotate(-2deg); }
.artist__hand li:nth-child(2) { transform: rotate(1.5deg) translateY(-14px); }
.artist__handnote { font-size: 0.92rem; line-height: 1.45; max-width: 24ch; padding-bottom: 6px; }

@media (max-width: 1100px) {
  .pieboard__copy { padding-right: 48px; }
  .artist__grid { gap: 0 56px; }
}
@media (max-width: 1020px) {
  .pieboard__grid { grid-template-columns: 1fr; }
  .pieboard__copy { padding: 72px var(--gut) 56px; }
  .pieboard__photo img { min-height: 0; height: auto; aspect-ratio: 1.15; }
  .cookie__grid { grid-template-columns: 1fr; grid-template-areas: "title" "photo" "copy"; }
  .cookie__copy { margin-top: 36px; padding-top: 0; }
  .artist__grid { grid-template-columns: 1fr; grid-template-areas: "portrait" "words" "hand"; gap: 40px; }
  .artist__portrait { max-width: 560px; }
}
@media (max-width: 640px) {
  .pieboard__copy { padding: 56px var(--gut) 44px; }
  .pieboard__list li { gap: 14px; padding: 11px 0 10px; }
  .pieboard__actions .btn { flex: 1 1 100%; justify-content: center; }
  .cookie { padding: 64px 0; }
  .cookie__title { font-size: 3.3rem; margin-bottom: -0.3em; }
  .cookie__photo { margin: 0 calc(-1 * var(--gut)); }
  .cookie__award { font-size: 2.8rem; }
  .artist { padding: 64px 0 72px; }
  .artist__portrait { margin: 0 calc(-1 * var(--gut)); max-width: none; }
  .artist__portrait img { aspect-ratio: 0.95; }
  .artist__bio { grid-template-columns: 1fr; gap: 14px; }
  .artist__hand { grid-template-columns: 1fr 1fr; margin-top: 8px; }
  .artist__handnote { grid-column: 1 / -1; max-width: none; }
}

/* ---------- homepage: celebration cakes, a strip of four running edge to edge ---------- */
.cakes9 { padding: 120px 0 104px; }
.cakes9__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 0.8fr); gap: 32px 80px; align-items: end; margin-bottom: 48px; }
.cakes9__title { margin: 0; font-weight: 700; text-transform: lowercase; letter-spacing: -0.045em; line-height: 0.96; font-size: clamp(2.6rem, 5vw, 4.6rem); max-width: 12ch; text-wrap: balance; }
.cakes9__side p { max-width: 46ch; margin-bottom: 22px; }
.cakes9__strip { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 6px; }
.cakes9__strip img { width: 100%; height: 100%; aspect-ratio: auto; height: clamp(320px, 38vw, 560px); object-fit: cover; }
.cakes9__strip li:nth-child(3) img { object-position: 50% 30%; }
.cakes9__flavors { list-style: none; margin: 32px 0 0; padding: 18px 0 0; border-top: 2px solid var(--espresso); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px 40px; }
.cakes9__flavors li { display: flex; flex-direction: column; gap: 4px; font-size: 0.95rem; }
.cakes9__flavors strong { font-size: 1.08rem; }
.cakes9__flavors .chips, .cakes9__flavors li > .chip { align-self: flex-start; margin-top: 6px; }
.cakes9__flavors .chip { color: var(--red); margin-right: 4px; }

/* ---------- homepage: find us, the bakery either side of the room ---------- */
.findus { padding: 120px 0 112px; border-top: 1px solid var(--rule); }
.findus__title { margin: 0 0 48px; font-weight: 700; text-transform: lowercase; letter-spacing: -0.045em; line-height: 0.96; font-size: clamp(2.6rem, 5vw, 4.6rem); }
.findus__grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: 48px; align-items: start; }
.findus .visit__facts { margin-top: 0; }
.findus__actions { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 30px; }
.findus__room { position: relative; }
.findus__room img { width: 100%; aspect-ratio: 0.72; object-fit: cover; object-position: 45% 50%; }
.findus__sub { margin: 0; font-weight: 700; text-transform: lowercase; letter-spacing: -0.03em; font-size: 1.7rem; line-height: 1.1; }
.findus__markets > p { margin-top: 10px; font-size: 0.95rem; }
.findus .mk { margin-top: 20px; }
.findus .mk__row { grid-template-columns: 1fr; gap: 2px; padding: 12px 0; }

@media (max-width: 1100px) {
  .findus__grid { grid-template-columns: 1fr 1fr; }
  .findus__room { grid-column: 1 / -1; order: -1; }
  .findus__room img { aspect-ratio: 1.8; }
}
@media (max-width: 1020px) {
  .artist__grid--rev { grid-template-areas: "portrait" "words" "hand"; }
  .artist__portrait img { min-height: 0; height: auto; aspect-ratio: 1; }
  .cakes9__head { grid-template-columns: 1fr; }
  .cakes9__strip { grid-template-columns: 1fr 1fr; }
  .cakes9__strip img { height: 380px; }
}
@media (max-width: 640px) {
  .cakes9 { padding: 64px 0; }
  .cakes9__head { margin-bottom: 28px; }
  .cakes9__strip { grid-template-columns: 1fr 1fr; gap: 4px; }
  .cakes9__strip li:first-child { grid-column: 1 / -1; }
  .cakes9__strip img { height: 230px; }
  .cakes9__strip li:first-child img { height: 300px; }
  .cakes9__strip li:nth-child(4) { display: none; }
  .cakes9__flavors { grid-template-columns: 1fr; gap: 14px; }
  .findus { padding: 64px 0; }
  .findus__title { margin-bottom: 28px; }
  .findus__grid { grid-template-columns: 1fr; gap: 36px; }
  .findus__room { margin: 0 calc(-1 * var(--gut)); }
  .findus__room img { aspect-ratio: 1.25; }
  .findus__actions { flex-direction: row; flex-wrap: wrap; }
  .findus__actions .btn { flex: 1 1 100%; justify-content: center; }
}


/* SOURCE: approved-home.css */
/* Gate 4: semantic reconstruction of the accepted 1586/992 and 853/1844 art.
 * No raster headline, paragraph, navigation or button is used on this page.
 * Century Gothic web licensing remains unresolved. Arial/Helvetica is an
 * explicitly provisional optical match to the approved raster lettering.
 */
.rb-home { container-type:inline-size; font-family:Arial,Helvetica,sans-serif; color:#3c2317; overflow-x:clip; }
.rb-preview-ribbon { height:1.89155cqw; display:flex; align-items:center; justify-content:center; gap:1.51324cqw; background:#fdf4f5; color:#b70c24; font-size:.78815cqw; font-weight:700; letter-spacing:.03em; line-height:1; }
.rb-ribbon-star { font-size:1.38714cqw; font-weight:400; }
.rb-header { position:relative; z-index:60; height:5.92686cqw; padding:0 4.91803cqw 0 4.53972cqw; display:flex; align-items:center; gap:1.76545cqw; border-bottom:1px solid #e1d2ce; background:#fff; }
.rb-brand { display:block; width:14.37579cqw; flex:none; margin-right:auto; }
.rb-brand picture,.rb-brand img { display:block; width:100%; height:auto; }
.rb-navigation { display:flex; align-items:center; gap:1.57629cqw; white-space:nowrap; }
.rb-navigation a { font-size:.81967cqw; line-height:1; font-weight:700; text-decoration:none; }
.rb-navigation a:hover { color:#c10b24; }
.rb-header-order { display:flex; width:9.96217cqw; height:3.40479cqw; padding:0 1.26103cqw; align-items:center; justify-content:space-between; background:linear-gradient(105deg,#c50921,#c20e28); color:#fff; font-weight:700; font-size:.81967cqw; line-height:1; text-decoration:none; flex:none; }
.rb-header-order span { font-size:1.072cqw; font-weight:400; }
.rb-header-order:hover,.rb-menu-button:hover { background:#a80720; }
.rb-header .mnav { display:none; position:static; }
.rb-header .mnav__toggle { min-height:44px; display:flex; align-items:center; gap:22px; color:#3c2317; font:700 18px/1 Arial,Helvetica,sans-serif; text-transform:lowercase; border:0; padding:0; margin:0; background:transparent; list-style:none; cursor:pointer; }
.rb-header .mnav__toggle::marker,.rb-header .mnav__toggle::-webkit-details-marker { display:none; content:''; }
.rb-menu-bars { width:25px; height:13px; display:block; border-top:2px solid currentColor; border-bottom:2px solid currentColor; }
.rb-header .mnav__panel { position:absolute; inset:100% 0 auto; width:100%; max-width:none; padding:28px max(24px,5vw); background:#fff; color:#3c2317; box-shadow:0 14px 20px #3c231714; border-bottom:1px solid #d9c4bf; overflow:auto; z-index:70; }
.rb-header .mnav:not([open]) .mnav__panel { display:none; }
.rb-header .mnav__links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; margin:0; }
.rb-header .mnav__links a { display:block; padding:13px 0; font:700 17px/1.4 Arial,Helvetica,sans-serif; text-decoration:none; border-bottom:1px solid #ecdedd; }
.rb-header .mnav__links a:hover { color:#c10b24; }
.rb-header .mnav__actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 0; }
.rb-header .rb-nav-note { margin-top:20px; font:400 12px/1.5 Arial,Helvetica,sans-serif; }
.rb-hero { position:relative; z-index:1; isolation:isolate; width:100%; aspect-ratio:1586/753; background:#fff; }
.rb-hero-art { position:absolute; inset:0 0 auto; display:block; pointer-events:none; z-index:-1; }
.rb-hero-art img { display:block; width:100%; height:auto; max-width:none; }
.rb-location { position:absolute; left:4.91803cqw; top:5.64313cqw; display:flex; gap:.94578cqw; align-items:center; margin:0; color:#c10b24; font-size:.81967cqw; font-weight:700; line-height:1.2; letter-spacing:.12em; text-transform:uppercase; white-space:nowrap; }
.rb-location-dot { width:.50441cqw; height:.50441cqw; border-radius:50%; background:#c10b24; flex:none; margin-right:.1261cqw; }
.rb-location-slash { color:#dbc2bd; font-weight:400; }
.rb-title { position:absolute; left:4.91803cqw; top:9.07945cqw; margin:0; color:#3c2317; font:700 6.36822cqw/.950495 Arial,Helvetica,sans-serif; letter-spacing:-.054455em; }
.rb-title>span { display:block; white-space:nowrap; }
.rb-title .rb-title-red { color:#c10b24; }
.rb-title-period { color:#3c2317; }
.rb-accent-rule { position:absolute; top:28.94073cqw; left:5.23329cqw; height:2px; width:2.20681cqw; background:#c10b24; }
.rb-description { position:absolute; left:4.98108cqw; top:30.454cqw; width:29.88651cqw; margin:0; font:400 max(14px,1.13493cqw)/1.666667 Arial,Helvetica,sans-serif; letter-spacing:-.018em; }
.rb-actions { position:absolute; left:4.91803cqw; top:38.33544cqw; display:flex; align-items:center; gap:1.89155cqw; }
.rb-menu-button { width:14.18663cqw; height:max(44px,3.97226cqw); display:flex; align-items:center; justify-content:space-between; padding:0 1.57629cqw; background:linear-gradient(105deg,#c60921,#c20d28); color:#fff; font-size:max(12px,.88272cqw); line-height:1; font-weight:700; text-decoration:none; }
.rb-menu-button>span { font-size:1.135cqw; font-weight:400; }
.rb-order-link { min-width:8.57503cqw; height:3.84615cqw; padding:.94578cqw 0 .56747cqw; display:flex; gap:2.01765cqw; align-items:center; justify-content:space-between; border-bottom:2px solid #3c2317; font-size:max(12px,.88272cqw); line-height:1; font-weight:700; text-decoration:none; }
.rb-order-link>span { font-size:1.26103cqw; font-weight:400; }
.rb-order-link:hover { color:#c10b24; border-color:#c10b24; }
.rb-hand-note { position:absolute; left:91.74023cqw; top:29.38209cqw; margin:0; color:#3c2317; font:italic 1.51324cqw/1.333333 Arial,Helvetica,sans-serif; letter-spacing:0; }
.rb-hand-note>span { display:block; white-space:nowrap; }
.rb-proof { position:relative; z-index:0; width:90.16394%; height:7.25095cqw; margin:0 auto; border-top:1px solid #deccc7; color:#8b6f65; }
.rb-proof-inner { min-height:4.03531cqw; display:flex; align-items:center; gap:1.26103cqw; border-bottom:1px solid #deccc7; font-size:.69357cqw; line-height:1.5; text-transform:uppercase; }
.rb-proof-inner>span+span { border-left:1px solid #deccc7; padding-left:1.26103cqw; }
.rb-proof-inner strong { color:#3c2317; font-weight:700; }
.rb-home .skip { font:700 16px/1.4 Arial,Helvetica,sans-serif; }
.rb-home .stickybar { z-index:55; }
.rb-home .rb-hero :focus-visible { outline-color:#c10b24; outline-offset:4px; }
@media (max-width:1180px) {
 .rb-navigation,.rb-header-order { display:none; }
 .rb-header .mnav { display:block; }
}
@media (max-width:1000px) {
 .rb-preview-ribbon { height:7.034cqw; gap:3.1653cqw; font-size:2.34467cqw; letter-spacing:.045em; }
 .rb-ribbon-star { font-size:3.28253cqw; }
 .rb-header { height:17.93669cqw; padding:0 5.39273cqw 0 4.9238cqw; }
 .rb-brand { width:46.19cqw; }
 .rb-header .mnav__toggle { gap:4.2204cqw; font-size:3.516999cqw; }
 .rb-menu-bars { width:5.74443cqw; height:2.22743cqw; border-width:.469cqw; }
 .rb-hero { aspect-ratio:853/1631; }
 .rb-location { left:5.6272cqw; top:5.39273cqw; gap:1.7585cqw; font-size:2.22743cqw; letter-spacing:.125em; }
 .rb-location-dot { width:1.7585cqw; height:1.7585cqw; margin-right:.23447cqw; }
 .rb-title { left:5.39273cqw; top:11.9578cqw; font-size:14.068cqw; line-height:.9625; letter-spacing:-.061667em; }
 .rb-accent-rule { display:none; }
 .rb-description { left:6.21336cqw; top:57.795cqw; width:58.61665cqw; font-size:max(14px,3.39977cqw); line-height:1.517241; letter-spacing:-.018em; }
 .rb-actions { left:5.86166cqw; top:84.1735cqw; display:flex; flex-direction:column; align-items:flex-start; gap:2.34467cqw; }
 .rb-menu-button { width:52.28605cqw; height:12.6612cqw; padding:0 4.455cqw; font-size:3.39977cqw; }
 .rb-menu-button>span { font-size:4.9238cqw; }
 .rb-order-link { margin-left:.23447cqw; width:41.38335cqw; min-width:0; height:7.15123cqw; padding:0 2.34467cqw 2.1102cqw 3.75147cqw; border-bottom-width:.3517cqw; font-size:3.28253cqw; }
 .rb-order-link>span { font-size:4.455cqw; }
 .rb-hand-note,.rb-proof { display:none; }
}
@media (max-width:359px) {
 /* At tiny widths, readable text takes priority over shrinking the art poster.
    The entire photo is translated, never stretched or independently warped. */
 .rb-hero { aspect-ratio:auto; height:calc(191.2075cqw + 100px); }
 .rb-hero-art { top:100px; }
 .rb-location { white-space:normal; flex-wrap:wrap; width:91cqw; font-size:8px; row-gap:3px; }
 .rb-title { font-size:14.068cqw; }
 .rb-description { width:66cqw; font-size:13.5px; line-height:1.5; }
 .rb-actions { top:calc(84.1735cqw + 60px); }
 .rb-menu-button { width:58cqw; height:44px; font-size:13px; padding:0 16px; }
 .rb-order-link { width:45cqw; min-height:38px; font-size:12px; }
 .rb-header .mnav__links { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) { .rb-header *, .rb-hero * { transition:none; } }


/* SOURCE: site-design.css */
/* Shared extension of the approved hero. Food photography is never filtered,
   stretched, generated or retouched here. All decoration is non-food. */
:root { --wrap:1440px; --gut:clamp(22px,4.92vw,78px); --rule:#e2d2ce; --rule-strong:#cbb6b0; --blush:#fdf5f5; }
.rb-site { container-type:inline-size; font-family:Arial,Helvetica,sans-serif; color:#3c2317; }
.rb-site main { overflow-x:clip; }
.rb-site .wrap > *, .rb-site .split > *, .rb-site .ph__grid > *, .rb-site .mcat > * { min-width:0; }
.rb-site :focus-visible { outline:3px solid #c10b24; outline-offset:5px; }
.rb-site .rb-navigation a[aria-current=page], .rb-site .mnav__links a[aria-current=page] { color:#c10b24; text-decoration:underline; text-underline-offset:7px; }
.rb-site .skip { z-index:100; }
.rb-site .btn { min-height:52px; padding:16px 24px; font-size:14px; letter-spacing:0; border-width:1px; }
.rb-site .btn--red { background:linear-gradient(105deg,#c60921,#c20d28); }
.rb-site .btn--red:hover { background:#a80720; }
.rb-site .textlink { font-size:14px; padding:10px 0 7px; color:var(--espresso); border-color:var(--espresso); }
.rb-site .textlink:hover { color:var(--red); border-color:var(--red); }
.rb-site .h2, .rb-site .label__title, .rb-site .panel__title { font-size:clamp(36px,4.25vw,64px); line-height:1.01; letter-spacing:-.052em; }
.rb-site .kicker, .rb-site .label__kicker, .rb-site .panel__kicker { font-size:11px; line-height:1.5; letter-spacing:.15em; }
.rb-site .lede { font-size:18px; line-height:1.7; }
.rb-site .band { padding:clamp(64px,7.5vw,120px) 0; }
.rb-site .bandhead { gap:32px 80px; margin-bottom:48px; }
.rb-site .bandhead > .lede { max-width:42ch; }
.rb-site .band--blush { background:var(--blush); }
.rb-site .caption { font-size:12px; line-height:1.55; color:#765d54; }
.rb-site .caption--tag { background:#fff; color:var(--espresso); border:1px solid var(--rule); padding:14px 20px; }

/* Inner openings use the hero's type, generous white space and fine red rules.
   Individual layouts retain genuine photographic context rather than cutouts. */
.rb-inner .ph { background:#fff; color:var(--espresso); border:0; border-bottom:1px solid var(--rule); }
.rb-inner .ph__grid, .rb-inner .ph--pies .ph__grid, .rb-inner .ph--story .ph__grid, .rb-inner .ph--menu .ph__grid, .rb-inner .ph--season .ph__grid {
 max-width:var(--wrap); margin:auto; padding:clamp(56px,6vw,96px) var(--gut) clamp(64px,7vw,112px);
 grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,6vw,96px); align-items:center;
}
.rb-inner .ph--pies .ph__copy { padding:0; }
.rb-inner .ph__kicker, .rb-inner .ph--pies .ph__kicker, .rb-inner .ph--season .ph__kicker { color:var(--red); font-size:11px; letter-spacing:.16em; line-height:1.6; margin:0 0 26px; display:flex; gap:12px; align-items:center; }
.rb-inner .ph__kicker::before { content:''; width:7px; height:7px; flex:none; background:var(--red); border-radius:50%; }
.rb-inner .ph__title, .rb-inner .ph--pies .ph__title, .rb-inner .ph--season .ph__title, .rb-inner .ph--story .ph__title {
 font:700 clamp(48px,5.6vw,88px)/.98 Arial,Helvetica,sans-serif; letter-spacing:-.057em; max-width:12ch; text-wrap:balance;
}
.rb-title-accent { color:var(--red); }
.rb-inner .ph__lede { font-size:17px; line-height:1.75; margin-top:28px; max-width:43ch; }
.rb-inner .ph__lede::before { content:''; display:block; width:34px; height:2px; background:var(--red); margin-bottom:20px; }
.rb-inner .ph__note, .rb-inner .ph--pies .ph__note { color:#765d54; font-size:13px; max-width:40ch; margin-top:24px; }
.rb-inner .hero__actions { margin-top:30px; gap:18px; }
.rb-inner .ph .btn--white, .rb-inner .pagehead .btn--white { color:#fff; background:var(--red); border-color:var(--red); }
.rb-inner .ph .btn--ghost, .rb-inner .pagehead .btn--ghost { color:var(--espresso); border-color:var(--espresso); background:transparent; }
.rb-inner .ph .btn--white:hover { background:var(--red-deep); }
.rb-inner .ph .btn--ghost:hover { color:#fff; background:var(--espresso); }
.rb-inner .ph__photo { position:relative; }
.rb-inner .ph__photo::before { content:''; position:absolute; z-index:0; inset:18px -18px -18px 18px; border:1px solid var(--rule); pointer-events:none; }
.rb-inner .ph__photo img { position:relative; width:100%; height:auto; min-height:0; object-fit:cover; }
.rb-inner .ph__photo--tall img { aspect-ratio:.84; object-position:50% 50%; }
.rb-inner .ph__photo--flush img { aspect-ratio:.94; object-position:50% 55%; }
.rb-inner .ph--story .ph__photo { order:0; }
.rb-inner .ph__photo--story img { aspect-ratio:.87; object-position:50% 15%; }
.rb-inner .ph__photo .caption { position:relative; background:#fff; padding-top:14px; }
.rb-inner .index { margin-top:28px; border-top:1px solid var(--rule-strong); gap:0 22px; }
.rb-inner .index a { min-height:44px; font-size:13px; gap:10px; }
.rb-inner .index a span { color:var(--red); font-size:10px; }
.rb-inner .ph__legend { font-size:12px; color:#765d54; }
.rb-inner .ph--menu .ph__title { max-width:10ch; }
.rb-inner .slip-wrap { padding:0 0 150px 0; }
.rb-inner .slip-photo img { border:0; aspect-ratio:1; }
.rb-inner .slip { width:85%; right:-18px; padding:26px; transform:rotate(1deg); border:1px solid var(--rule); box-shadow:0 12px 28px #3c23170a; }
.rb-inner .slip__head { border-bottom:2px solid var(--red); }
.rb-inner .slip__row { grid-template-columns:86px minmax(0,1fr); }
.rb-inner .slip__row dd { font-size:13px; }
.rb-inner .pinned { height:600px; }
.rb-inner .pinned img { border:8px solid #fff; box-shadow:0 0 0 1px var(--rule); }
.rb-inner .pinned__a { left:0; top:40px; width:61%; height:70%; transform:rotate(-2deg); }
.rb-inner .pinned__b { right:-8px; top:0; width:43%; height:59%; transform:rotate(3deg); }
.rb-inner .pinned__c { left:47%; bottom:0; width:47%; height:43%; transform:rotate(-3deg); }
.rb-inner .ph--story .quote { padding-left:20px; border-left-width:2px; margin-top:30px; }
.rb-inner .ph--story .quote p { font-size:21px; line-height:1.4; }
.rb-inner .ph--story .quote cite { font-size:11px; letter-spacing:.04em; line-height:1.5; }
.rb-inner .ph--visit > .wrap { padding-top:70px; }
.rb-inner .ph__copy--center { padding-top:0; }
.rb-inner .ph__copy--center .ph__title { max-width:15ch; }
.rb-inner .ph__copy--center .ph__kicker { justify-content:center; }
.rb-inner .ph__copy--center .ph__lede { max-width:58ch; }
.rb-inner .ph__copy--center .ph__lede::before { margin-left:auto; margin-right:auto; }
.rb-inner .room { margin-top:52px; padding-bottom:96px; }
.rb-inner .room__img { aspect-ratio:1.45; }
.rb-inner .room__card { border:1px solid var(--rule); border-top:3px solid var(--red); padding:32px; box-shadow:0 12px 28px #3c231708; }
.rb-inner .room__facts dt { font-size:10px; }
.rb-inner .room__facts dd { font-size:16px; }

/* The open counter: lists, gallery prints and forms share one quiet rhythm. */
.rb-site .label { border:1px solid var(--rule); padding:32px; border-top:3px solid var(--red); }
.rb-site .label--open { padding:0; border:0; }
.rb-site .label__title { border-bottom:1px solid var(--rule-strong); padding-bottom:20px; margin-top:12px; font-size:clamp(32px,3.6vw,52px); }
.rb-site .item { padding:19px 0; border-color:var(--rule); }
.rb-site .item__name { font-size:16px; }
.rb-site .item__price { font-size:17px; }
.rb-site .item__desc { color:#765d54; font-size:14px; line-height:1.65; }
.rb-site .label__foot { border-width:1px; font-size:12px; line-height:1.6; }
.rb-site .mcat { gap:clamp(36px,6vw,88px); }
.rb-site .mcat__photos { gap:12px; top:32px; }
.rb-site .mcat__photos img { border:0; }
.rb-site .tiles { gap:24px; }
.rb-site .tile__tag { padding-top:15px; margin-top:14px; border-top:1px solid var(--rule); font-size:16px; line-height:1.4; }
.rb-site .tile__tag small { margin-top:5px; font-size:12px; color:#765d54; line-height:1.5; }
.rb-site .tiles--lead { grid-template-columns:1.4fr 1fr 1fr; }
.rb-site .jumps { border-bottom:1px solid var(--rule); }
.rb-site .jumps__row { gap:12px; padding-top:8px; padding-bottom:8px; scrollbar-width:thin; }
.rb-site .jumps a { font-size:12px; padding:12px 10px; }
.rb-site .steps { border-top:1px solid var(--rule-strong); gap:32px; }
.rb-site .step::before { font-size:42px; font-weight:400; margin-bottom:22px; }
.rb-site .step__title { font-size:20px; letter-spacing:-.03em; }
.rb-site .step p { font-size:15px; color:#765d54; line-height:1.7; }
.rb-site .form { border:1px solid var(--rule); border-top:3px solid var(--red); padding:36px; }
.rb-site .form__grid { gap:22px; }
.rb-site .field label, .rb-site .field legend { font-size:10px; line-height:1.6; }
.rb-site .field input, .rb-site .field select, .rb-site .field textarea { border-color:var(--rule-strong); min-height:48px; font:400 16px/1.4 Arial,Helvetica,sans-serif; }
.rb-site .field input[type=checkbox], .rb-site .field input[type=radio] { min-height:0; }
.preview-fields { display:contents; border:0; padding:0; margin:0; min-width:0; }
.rb-preview-form-note { margin-bottom:24px; padding-bottom:18px; border-bottom:1px solid var(--rule); color:#765d54; font-size:12px; line-height:1.6; }
.rb-site [data-preview-message] { margin-top:20px; padding:16px; border-left:2px solid var(--red); background:var(--blush); font-size:14px; }
.rb-site .form .qty label { color:var(--espresso); font-size:14px; letter-spacing:0; }
.rb-site .qty input { width:64px; }
.rb-site .choice__row span { font-size:13px; min-height:44px; padding:12px 14px; }
.rb-site .form__foot p { font-size:12px; color:#765d54; }
.rb-site .band--espresso { background:var(--blush); color:var(--espresso); }
.rb-site .band--espresso .h2--ondark, .rb-site .band--espresso .offer, .rb-site .band--espresso .faq a { color:var(--espresso); }
.rb-site .band--espresso .offer { border-color:var(--rule-strong); }
.rb-site .band--espresso .offer p { color:#765d54; }
.rb-site .band--espresso .textlink { color:var(--espresso); border-color:var(--espresso); }
.rb-site .band--espresso .faq { border-top-color:var(--rule-strong); }
.rb-site .band--espresso .faq details { border-color:var(--rule); }
.rb-site .band--espresso .faq summary::after { color:var(--red); }
.rb-site .offer__title { font-size:24px; letter-spacing:-.04em; }
.rb-site .offer p { font-size:15px; line-height:1.7; }
.rb-site .faq summary { font-size:17px; padding:22px 0; }
.rb-site .faq details > p { font-size:15px; line-height:1.75; }
.rb-site .timeline::before { width:1px; background:var(--rule-strong); }
.rb-site .tl__when { font-size:10px; }
.rb-site .tl__what strong { font-size:19px; letter-spacing:-.02em; }
.rb-site .tl__what p { font-size:15px; line-height:1.75; }

/* Homepage chapters: the accepted opening remains untouched. */
.rb-site .pieboard { padding:56px 0 0; }
.rb-site .pieboard__grid { max-width:var(--wrap); padding:0 var(--gut) 96px; margin:auto; gap:clamp(36px,6vw,96px); align-items:center; }
.rb-site .pieboard__copy { padding:0; }
.rb-site .pieboard__title { font-size:clamp(36px,4.3vw,66px); letter-spacing:-.052em; }
.rb-site .pieboard__list { margin-top:30px; border-top-width:1px; }
.rb-site .pieboard__list li { font-size:18px; padding:13px 0; border-color:var(--rule); }
.rb-site .pieboard__photo img { min-height:0; height:auto; aspect-ratio:.8; }
.rb-site .pieboard__note { font-size:15px; }
.rb-site .cookie { background:var(--blush); padding:100px 0; }
.rb-site .cookie__title { margin:0 0 36px; font-size:clamp(42px,6.5vw,96px); line-height:.98; }
.rb-site .cookie__copy { padding-top:12px; }
.rb-site .cookie__story { font-size:15px; line-height:1.75; }
.rb-site .shelf { margin-top:64px; }
.rb-site .ingredients { background:#fff; color:var(--espresso); padding:96px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); }
.rb-site .ingredients__grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:72px; }
.rb-site .panel { border:0; margin:0; padding:0; }
.rb-site .panel__title { border-bottom:1px solid var(--rule-strong); padding-bottom:24px; }
.rb-site .panel__row { padding:16px 0; font-size:15px; border-color:var(--rule); }
.rb-site .panel__row--total { border-top:1px solid var(--rule-strong); }
.rb-site .panel__note { background:var(--blush); color:var(--espresso); border-left:2px solid var(--red); font-size:13px; }
.rb-site .press { background:var(--blush); color:var(--espresso); padding:100px 0; }
.rb-site .press .h2--ondark { color:var(--espresso); }
.rb-site .press .textlink { color:var(--espresso); border-color:var(--espresso); }
.rb-site .press__clip img { box-shadow:6px 6px 0 #e8d9d6; }
.rb-site .press .ledger, .rb-site .press .ledger li { border-color:var(--rule-strong); }
.rb-site .press .ledger__when { color:var(--red); }
.rb-site .press .ledger__what { color:#765d54; }
.rb-site .press .ledger__what strong { color:var(--espresso); }
.rb-site .artist, .rb-site .cakes9, .rb-site .findus, .rb-site .ig, .rb-site .markets { padding-top:96px; padding-bottom:96px; }
.rb-site .artist__hand li { transform:none; }
.rb-site .artist__hand img { border:1px solid var(--rule); }
.rb-site .cakes9__strip { max-width:var(--wrap); margin:auto; padding:0 var(--gut); gap:14px; }
.rb-site .cakes9__strip img { height:clamp(260px,30vw,440px); }
.rb-site .cakes9__flavors { border-top-width:1px; font-size:14px; }
.rb-site .closer { padding:72px 0; }
.rb-site .closer__title { font-size:clamp(32px,3.4vw,48px); letter-spacing:-.05em; }

/* Quiet illustrated closing, reusing only the approved non-food barn layer. */
.rb-site .rb-footer-vignette { display:flex; align-items:flex-end; justify-content:flex-end; max-width:var(--wrap); margin:auto; padding:30px var(--gut) 0; }
.rb-footer-vignette img { width:300px; height:auto; margin-bottom:-1px; }
.rb-site .footer { background:#fff; color:var(--espresso); padding-top:0; }
.rb-site .footer__grid { border-top:1px solid var(--rule); padding-top:56px; padding-bottom:56px; gap:40px; }
.rb-site .footer__word { margin:0 0 16px; font-size:24px; letter-spacing:-.05em; }
.rb-site .footer__word .lockup__red { color:var(--red); }
.rb-site .footer__line { color:#765d54; font-size:14px; line-height:1.7; }
.rb-site .footer__head { color:var(--red); font-size:10px; margin-bottom:20px; }
.rb-site .footer__nav, .rb-site .footer__col { font-size:14px; }
.rb-site .footer__nav a { padding:3px 0; }
.rb-site .footer .btn--white { background:var(--red); border-color:var(--red); color:#fff; }
.rb-site .footer__base { color:#765d54; border-color:var(--rule); font-size:11px; padding-top:24px; padding-bottom:24px; }
.rb-site .footer .social { color:var(--espresso); }
.rb-site .footer :focus-visible { outline-color:var(--red); }
.rb-site .pagehead { color:var(--espresso); background:#fff; }
.rb-site .pagehead__inner { padding:100px var(--gut); }
.rb-site .pagehead__title { font-size:clamp(44px,6vw,84px); letter-spacing:-.055em; }
.rb-site .pagehead .ph__kicker { color:var(--red); }
.rb-site .pagehead__lede { font-size:17px; line-height:1.7; }
.rb-site .stickybar { box-shadow:none; border-top:1px solid var(--rule); padding-bottom:env(safe-area-inset-bottom); }
.rb-site .stickybar__call { background:var(--red); }

@media (min-width:1001px) {
 .rb-site .rb-navigation a { font-size:max(12px,.81967cqw); }
 .rb-site .rb-header-order { font-size:max(12px,.81967cqw); min-height:44px; }
 .rb-site .rb-preview-ribbon { min-height:24px; font-size:max(10px,.78815cqw); }
}
@media (max-width:1100px) {
 .rb-site .tiles--lead { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .rb-site .footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .rb-inner .pinned { height:480px; }
 .rb-inner .slip { right:0; width:92%; }
 .rb-site .ingredients__grid { gap:40px; }
 .rb-site .press__layout { gap:40px; }
}
@media (min-width:1001px) and (max-width:1279px) {
 .rb-home .rb-actions { top:calc(38.33544cqw + 28px); }
}
@media (max-width:1020px) {
 .rb-inner .ph__grid, .rb-inner .ph--pies .ph__grid, .rb-inner .ph--story .ph__grid, .rb-inner .ph--menu .ph__grid, .rb-inner .ph--season .ph__grid { grid-template-columns:1fr; padding-top:56px; padding-bottom:64px; gap:48px; }
 .rb-inner .ph__title, .rb-inner .ph--pies .ph__title, .rb-inner .ph--season .ph__title, .rb-inner .ph--story .ph__title { font-size:clamp(50px,8.8vw,78px); max-width:14ch; }
 .rb-inner .ph__copy { max-width:680px; }
 .rb-inner .ph__lede { max-width:54ch; }
 .rb-inner .ph__photo { max-width:700px; }
 .rb-inner .ph__photo--tall img, .rb-inner .ph__photo--flush img { aspect-ratio:1.3; }
 .rb-inner .ph__photo--story img { aspect-ratio:1.05; }
 .rb-inner .slip-wrap { max-width:680px; padding-bottom:150px; }
 .rb-inner .pinned { width:100%; max-width:680px; height:620px; }
 .rb-site .pieboard__grid { grid-template-columns:1fr; padding-bottom:64px; }
 .rb-site .pieboard__photo img { aspect-ratio:1.25; }
 .rb-site .ingredients__grid { grid-template-columns:1fr; }
 .rb-site .ingredients__photo { max-width:620px; }
 .rb-site .ingredients__photo img { aspect-ratio:1.4; }
 .rb-site .cookie__copy { padding-top:0; }
 .rb-site .bandhead { align-items:flex-start; }
}
@media (max-width:640px) {
 .rb-site .rb-header .mnav__toggle { font-size:16px; min-width:72px; justify-content:flex-end; }
 .rb-site .rb-header .mnav__panel { padding:22px; }
 .rb-site .rb-header .mnav__links { grid-template-columns:1fr; }
 .rb-site .rb-header .mnav__links a { padding:11px 0; font-size:16px; }
 .rb-site .rb-header .mnav__actions { margin-top:18px; gap:10px; }
 .rb-site .rb-header .mnav__actions .btn { min-height:44px; padding:12px 16px; font-size:12px; }
 .rb-site .rb-nav-note { display:none; }
 .rb-site .band, .rb-site .cookie, .rb-site .ingredients, .rb-site .press, .rb-site .artist, .rb-site .cakes9, .rb-site .findus, .rb-site .ig, .rb-site .markets { padding-top:64px; padding-bottom:64px; }
 .rb-site .h2 { font-size:38px; }
 .rb-site .lede { font-size:16px; }
 .rb-site .bandhead { flex-direction:column; gap:20px; margin-bottom:32px; }
 .rb-site .bandhead--end { margin-bottom:0; }
 .rb-inner .ph__grid, .rb-inner .ph--pies .ph__grid, .rb-inner .ph--story .ph__grid, .rb-inner .ph--menu .ph__grid, .rb-inner .ph--season .ph__grid { padding-top:42px; padding-bottom:56px; gap:36px; }
 .rb-inner .ph__title, .rb-inner .ph--pies .ph__title, .rb-inner .ph--season .ph__title, .rb-inner .ph--story .ph__title { font-size:clamp(44px,12vw,66px); }
 .rb-inner .ph__kicker { margin-bottom:20px; font-size:10px; }
 .rb-inner .ph__lede { font-size:16px; line-height:1.65; margin-top:24px; }
 .rb-inner .ph__photo::before { inset:10px -10px -10px 10px; }
 .rb-inner .index { column-gap:16px; }
 .rb-inner .index a { font-size:12px; }
 .rb-inner .ph .hero__actions { gap:12px 18px; }
 .rb-inner .slip-wrap { padding:0; }
 .rb-inner .slip { position:relative; width:auto; margin:-24px 10px 0; padding:22px; transform:rotate(1deg); }
 .rb-inner .slip-photo img { aspect-ratio:1.1; }
 .rb-inner .pinned { height:auto; padding-bottom:32px; }
 .rb-inner .pinned figure.pinned__a { width:72%; height:auto; top:auto; margin-left:0; }
 .rb-inner .pinned__b { top:auto; bottom:0; width:42%; height:auto; right:0; }
 .rb-inner .pinned__a img { aspect-ratio:.86; }
 .rb-inner .pinned__b img { aspect-ratio:.78; }
 .rb-inner .pinned__c { display:none; }
 .rb-inner .ph--visit > .wrap { padding-top:42px; }
 .rb-inner .room { margin-top:32px; padding-bottom:56px; }
 .rb-inner .room__img { aspect-ratio:1.1; }
 .rb-inner .room__card { margin:-20px 10px 0; padding:24px 20px; }
 .rb-site .tiles { gap:24px 14px; }
 .rb-site .tiles--lead { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .rb-site .tile__tag { font-size:14px; }
 .rb-site .tile__tag small { font-size:12px; }
 .rb-site .label { padding:24px 20px; }
 .rb-site .label--open { padding:0; }
 .rb-site .label__title { font-size:34px; }
 .rb-site .item { gap:6px 14px; }
 .rb-site .item__name { font-size:15px; }
 .rb-site .item__desc { grid-column:1/-1; }
 .rb-site .form { padding:26px 20px; }
 .rb-site .form__grid { gap:18px; }
 .rb-site .form__foot .btn { width:100%; }
 .rb-site .steps { gap:0; }
 .rb-site .step::before { font-size:26px; margin-bottom:0; }
 .rb-site .step__title { font-size:19px; }
 .rb-site .pieboard { padding-top:32px; }
 .rb-site .pieboard__title { font-size:42px; }
 .rb-site .pieboard__list li { font-size:17px; }
 .rb-site .pieboard__photo img { aspect-ratio:1; }
 .rb-site .cookie__title { font-size:52px; margin-bottom:28px; }
 .rb-site .cookie__photo { margin:0; }
 .rb-site .artist__portrait { margin:0; }
 .rb-site .artist__quote p { text-indent:0; }
 .rb-site .cakes9__strip { gap:10px; }
 .rb-site .cakes9__strip img { height:230px; }
 .rb-site .panel__row { flex-wrap:wrap; gap:4px 20px; font-size:14px; }
 .rb-site .panel__row dd { margin-left:auto; }
 .rb-site .footer__grid { gap:32px 24px; padding-top:36px; padding-bottom:36px; }
 .rb-site .footer__brand { grid-column:1/-1; max-width:40ch; }
 .rb-site .footer__col:last-child { grid-column:1/-1; }
 .rb-site .footer__line { font-size:13px; }
 .rb-site .footer__nav, .rb-site .footer__col { font-size:13px; }
 .rb-site .rb-footer-vignette { padding-top:20px; }
 .rb-footer-vignette img { width:220px; }
 .rb-site .pagehead__inner { padding-top:64px; padding-bottom:72px; }
}
@media (prefers-reduced-motion:reduce) { .rb-site * { scroll-behavior:auto; transition:none; } }

/* ---- Browser QA fixes, Oct 14 2026 (Claude). Direction unchanged; each rule fixes a defect seen in Chromium. ---- */
/* GF / V badges in the blush allergen note were white on blush (contrast 1.07:1, invisible) */
.rb-site .panel__note .chip--light { color:var(--red); }
/* hero, 1001–1280: the menu button's arrow touched its label and the recognition text fell to 7–9px */
@media (min-width:1001px) {
 .rb-home .rb-menu-button { width:max(14.18663cqw,172px); }
 .rb-home .rb-proof-inner { font-size:max(10px,.69357cqw); }
}
/* hero, phone: "how to order" was a 28px-tall target; widen the hit area without moving the drawn link */
.rb-home .rb-order-link { position:relative; }
.rb-home .rb-order-link::before { content:''; position:absolute; left:0; right:0; top:-9px; bottom:-9px; }
/* footer, phone: link names and the email address were broken across lines in a narrow half column */
@media (max-width:640px) {
 .rb-site .footer__nav, .rb-site .footer__col { grid-column:1/-1; }
 .rb-site .footer__nav a { padding:12px 0; }
}


/* SOURCE: polish.css */
/* October 14 art-direction pass. Approved homepage hero art and geometry locked.
   Decorations are original SVG linework; food images are original, unfiltered. */
:root { --rb-paper:#fdf6f6; --rb-red:#c10b24; --rb-ink:#3c2317; --rb-line:#ddc9c4; }
.rb-arrow { width:19px; height:19px; display:block; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:square; stroke-linejoin:miter; }
.rb-menu-button > span, .rb-header-order > span, .rb-order-link > span { display:flex; align-items:center; justify-content:center; }
.rb-ribbon-mark { width:14px; height:14px; display:block; fill:none; stroke:currentColor; stroke-width:1.3; }
.rb-site .rb-navigation a { position:relative; }
.rb-site .btn, .rb-site .textlink, .rb-site .rb-menu-button, .rb-site .rb-header-order { transition:background-color .2s,color .2s,border-color .2s; }
.rb-site .btn--red { box-shadow:inset 0 0 0 1px #ffffff0c; }
.rb-site .rb-navigation a[aria-current=page] { text-decoration-thickness:1px; }
.rb-site .caption--tag { font-size:12px; line-height:1.45; padding:14px 18px; box-shadow:0 3px 18px #3c231706; }
.rb-site .caption--tag strong { display:block; margin-bottom:3px; font-size:13px; }
.rb-site .kicker { display:flex; gap:12px; align-items:center; }
.rb-site .kicker::before { content:''; display:block; width:24px; height:1px; background:var(--rb-red); }

/* Seasonal chapter: an open order ledger opposite a full photographic print. */
.rb-home .pieboard { position:relative; padding-top:48px; }
.rb-home .pieboard__grid { position:relative; padding-top:24px; padding-bottom:112px; gap:clamp(44px,7vw,108px); }
.rb-home .pieboard__copy { position:relative; padding:26px 0 20px; }
.rb-home .pieboard__title { max-width:12ch; font-size:clamp(40px,4.5vw,70px); line-height:.99; }
.rb-home .pieboard__list { margin-top:34px; border-top:2px solid var(--rb-red); }
.rb-home .pieboard__list li { padding:14px 0; font-size:17px; font-weight:400; }
.rb-home .pieboard__no { font-size:10px; letter-spacing:.1em; }
.rb-home .pieboard__note { max-width:40ch; color:#765d54; line-height:1.75; font-size:14px; }
.rb-home .pieboard__photo { position:relative; isolation:isolate; padding:12px; border:1px solid var(--rb-line); background:#fff; }
.rb-home .pieboard__photo::before { content:''; position:absolute; right:-17px; top:-17px; width:76px; height:76px; border-top:2px solid var(--rb-red); border-right:2px solid var(--rb-red); z-index:-1; }
.rb-home .pieboard__photo img { aspect-ratio:.82; object-position:32% 50%; }
.rb-home .pieboard__photo .caption--tag { left:12px; right:auto; bottom:28px; max-width:85%; border-left:0; border-bottom:0; border-top:0; border-right:2px solid var(--rb-red); }

/* A signature spread, followed by a quieter four-item counter shelf. */
.rb-home .cookie { position:relative; background:var(--rb-paper); padding:100px 0 84px; border-top:1px solid #ecdedd; border-bottom:1px solid #ecdedd; }
.rb-home .cookie__grid { grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr); column-gap:clamp(40px,6vw,90px); }
.rb-home .cookie__title { font-size:clamp(48px,7.2vw,108px); letter-spacing:-.062em; margin-bottom:46px; max-width:12ch; }
.rb-home .cookie__photo { position:relative; isolation:isolate; align-self:start; }
.rb-home .cookie__photo::after { content:''; position:absolute; left:18px; bottom:-18px; right:-18px; top:18px; border:1px solid #d3a5a7; z-index:-1; }
.rb-home .cookie__photo img { aspect-ratio:1.12; }
.rb-home .cookie__copy { padding-top:0; }
.rb-home .cookie__award { font-size:70px; font-weight:400; border-top:1px solid #cfa5a7; padding-top:18px; margin-bottom:24px; }
.rb-home .cookie__award span { font-size:10px; letter-spacing:.16em; }
.rb-home .cookie__story { font-size:15px; line-height:1.75; }
.rb-home .sig__prices { border-top:1px solid #cfa5a7; }
.rb-home .sig__prices div { padding:12px 0; border-color:#dfc7c6; }
.rb-home .shelf { margin-top:84px; border-top:1px solid #d3b4b2; padding-top:32px; }
.rb-home .shelf__head { margin-bottom:28px; }
.rb-home .shelf__title { font-size:23px; letter-spacing:-.035em; }
.rb-home .shelf__items { gap:24px; }
.rb-home .shelf__item img { background:#fff; }
.rb-home .shelf__item { border:0; background:transparent; }
.rb-home .shelf__name { padding-top:14px; border-top:1px solid #d3b4b2; margin-top:14px; }

/* Randell and her own handwriting, given the room they deserve. */
.rb-site .artist { position:relative; isolation:isolate; padding-top:120px; padding-bottom:112px; }
.rb-site .artist__grid { gap:0 clamp(48px,7vw,112px); }
.rb-site .artist__portrait { position:relative; padding:0 0 28px 22px; }
.rb-site .artist__portrait::before { content:''; position:absolute; inset:28px 22px 0 0; background:var(--rb-paper); border-bottom:2px solid var(--rb-red); z-index:-1; }
.rb-site .artist__portrait img { aspect-ratio:.82; height:auto; min-height:0; object-position:50% 40%; }
.rb-site .artist__words { position:relative; padding-top:24px; }
.rb-site .artist__words > .h2 { font-size:clamp(50px,5.5vw,80px); letter-spacing:-.06em; }
.rb-site .artist__quote { margin-top:32px; }
.rb-site .artist__quote p { font-size:clamp(28px,2.8vw,40px); font-weight:400; line-height:1.18; letter-spacing:-.035em; text-indent:0; }
.rb-site .artist__bio { grid-template-columns:1fr; gap:14px; margin-top:28px; padding-top:22px; border-top:1px solid var(--rb-line); }
.rb-site .artist__bio p { font-size:14px; line-height:1.8; max-width:58ch; }
.rb-site .artist__hand { grid-template-columns:150px 150px minmax(0,1fr); gap:22px; max-width:720px; margin-top:44px; }
.rb-site .artist__hand li:nth-child(1) { transform:rotate(-2deg); }
.rb-site .artist__hand li:nth-child(2) { transform:rotate(2deg); }
.rb-site .artist__hand img { padding:7px; background:#fff; border:1px solid var(--rb-line); aspect-ratio:.9; }
.rb-site .artist__handnote { font-size:12px; color:#765d54; }

/* Ingredients: a clean counter card, with botanical linework in the margin. */
.rb-site .ingredients { position:relative; isolation:isolate; background:var(--rb-paper); border:0; padding:96px 0; }
.rb-site .ingredients__grid { gap:clamp(44px,7vw,112px); }
.rb-site .ingredients__photo { padding:12px; border:1px solid #dfc5c4; background:#fff; }
.rb-site .ingredients__photo img { aspect-ratio:.94; }
.rb-site .panel { position:relative; padding:10px 0; background:transparent; }
.rb-site .panel::after { content:''; position:absolute; right:-70px; top:-50px; width:100px; height:200px; background:url('img/brand/botanical.svg') center/contain no-repeat; opacity:.3; z-index:-1; }
.rb-site .panel__title { font-size:clamp(44px,4.7vw,68px); letter-spacing:-.055em; border-bottom:2px solid var(--rb-red); }
.rb-site .panel__row { border-color:#dfc9c7; padding:16px 0; font-size:14px; line-height:1.6; }
.rb-site .panel__row dt { font-weight:700; }
.rb-site .panel__row dd { max-width:60%; }
.rb-site .panel__note { padding:16px 0 0; background:transparent; border:0; color:#765d54; line-height:1.7; }
.rb-site .panel__note .chip--light { color:var(--rb-red); }

/* A cake portfolio, with a changing visual rhythm across the strip. */
.rb-home .cakes9 { padding:112px 0; }
.rb-home .cakes9__head { gap:40px 100px; align-items:end; margin-bottom:46px; }
.rb-home .cakes9__title { font-size:clamp(42px,5vw,76px); letter-spacing:-.055em; max-width:13ch; }
.rb-home .cakes9__side p { color:#765d54; font-size:15px; line-height:1.75; }
.rb-home .cakes9__strip { grid-template-columns:1.3fr .9fr 1fr .9fr; align-items:start; gap:20px; }
.rb-home .cakes9__strip li:nth-child(even) { padding-top:64px; }
.rb-home .cakes9__strip img { height:clamp(280px,31vw,460px); }
.rb-home .cakes9__strip li:nth-child(even) img { height:clamp(250px,26vw,390px); }
.rb-home .cakes9__flavors { margin-top:42px; padding-top:24px; gap:32px; }
.rb-home .cakes9__flavors li { font-size:13px; color:#765d54; }
.rb-home .cakes9__flavors strong { font-size:17px; color:var(--rb-ink); }

/* Documentary press, with its own visual register rather than another hero. */
.rb-site .press { position:relative; background:#fff; border-top:1px solid var(--rb-line); border-bottom:1px solid var(--rb-line); padding:96px 0; }
.rb-site .press__layout { grid-template-columns:1.05fr .95fr; gap:clamp(44px,7vw,108px); }
.rb-site .press__photos { padding:0 60px 42px 0; }
.rb-site .press__main img { border:0; aspect-ratio:1.12; }
.rb-site .press__clip { width:31%; transform:rotate(3deg); }
.rb-site .press__clip img { padding:5px; border:1px solid var(--rb-line); box-shadow:0 6px 24px #3c231713; }
.rb-site .press .h2 { font-size:clamp(34px,3.8vw,54px); }
.rb-site .ledger { margin-top:26px; border-top:1px solid var(--rb-line); }
.rb-site .ledger li { grid-template-columns:70px minmax(0,1fr); gap:20px; padding:17px 0; border-color:var(--rb-line); }
.rb-site .ledger__when { font-size:18px; font-weight:400; }
.rb-site .ledger__what { font-size:12px; }
.rb-site .ledger__what strong { font-size:15px; margin-bottom:3px; }
.rb-home .ig { background:var(--rb-paper); padding:90px 0; }
.rb-home .ig__row { gap:14px; }
.rb-home .ig__row img { border:0; }

/* A visit spread: the room leads; market days form a separate ledger below. */
.rb-home .findus { border:0; padding-top:108px; padding-bottom:64px; }
.rb-home .findus__title { max-width:10ch; font-size:clamp(44px,5.6vw,82px); letter-spacing:-.06em; margin-bottom:46px; }
.rb-home .findus__grid { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:52px 90px; }
.rb-home .findus__room img { aspect-ratio:1.25; object-position:50% 50%; }
.rb-home .findus__markets { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:0 90px; padding-top:40px; border-top:1px solid var(--rb-line); }
.rb-home .findus__markets > p { grid-column:1; max-width:30ch; font-size:13px; color:#765d54; }
.rb-home .findus .mk { grid-column:2; grid-row:1/span 2; margin-top:0; }
.rb-home .findus .mk__row { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4px 24px; padding:13px 0; }
.rb-home .findus .mk__note { grid-column:2; font-size:11px; }
.rb-home .findus .mk__name { grid-row:1/span 2; align-self:center; }

/* Each inner opening is a designed photographic spread, not a generic banner. */
.rb-inner .ph { isolation:isolate; border:0; }
.rb-inner .ph__grid { position:relative; }
.rb-inner .ph__grid::after { content:''; position:absolute; pointer-events:none; z-index:-1; width:120px; height:240px; left:calc(50% - 65px); bottom:50px; background:url('img/brand/botanical.svg') center/contain no-repeat; opacity:.18; transform:rotate(-9deg); }
.rb-inner .ph__photo { padding:10px; background:#fff; border:1px solid var(--rb-line); }
.rb-inner .ph__photo::before { border-color:#d6aaa9; inset:24px -14px -14px 24px; z-index:-1; }
.rb-editorial-label { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:15px 2px 3px; font-size:10px; line-height:1.5; letter-spacing:.06em; color:#765d54; }
.rb-editorial-label span:first-child { color:var(--rb-red); font-weight:700; }
.rb-inner .ph--menu { background:linear-gradient(90deg,#fff 55%,#fdf6f6 55%); }
.rb-inner .ph--menu .ph__grid { padding-top:64px; padding-bottom:80px; gap:clamp(44px,6vw,96px); }
.rb-inner .ph--menu .ph__title { max-width:10ch; }
.rb-inner .index { margin-top:30px; border-top:2px solid var(--rb-red); }
.rb-inner .index a { font-size:12px; padding-top:13px; padding-bottom:13px; min-height:48px; }
.rb-inner .index a:hover { color:var(--rb-red); }
.rb-inner .ph--pies { background:var(--rb-paper); }
.rb-inner .ph--pies .ph__photo::before { border-color:var(--rb-red); }
.rb-inner .ph--pies .ph__photo--flush img { aspect-ratio:.94; }
.rb-inner .ph--season { background:linear-gradient(90deg,#fff 55%,#fdf6f6 55%); }
.rb-inner .ph--season .ph__title { max-width:12ch; }
.rb-inner .slip-wrap { padding-bottom:156px; }
.rb-inner .slip-photo { padding:10px; background:#fff; border:1px solid var(--rb-line); }
.rb-inner .slip { width:84%; right:-12px; border-top:3px solid var(--rb-red); transform:rotate(0deg); box-shadow:0 8px 32px #3c23170b; }
.rb-inner .slip__head { font-size:24px; letter-spacing:-.04em; }
.rb-inner .slip__head span { font-size:9px; letter-spacing:.15em; }
.rb-inner .ph--cake { background:#fff; }
.rb-inner .ph--cake .ph__grid::after { left:auto; right:-15px; top:30px; bottom:auto; opacity:.3; }
.rb-inner .pinned::before { content:''; position:absolute; inset:36px 10px 0 36px; background:var(--rb-paper); z-index:-1; }
.rb-inner .pinned__a { transform:rotate(-1deg); }
.rb-inner .pinned__b { transform:rotate(2deg); }
.rb-inner .pinned__c { transform:rotate(-2deg); }
.rb-inner .pinned img { border:8px solid #fff; box-shadow:0 0 0 1px var(--rb-line),0 4px 16px #3c231709; }
.rb-inner .ph--story { background:var(--rb-paper); }
.rb-inner .ph--story .ph__photo { padding:12px 12px 0; }
.rb-inner .ph--story .ph__photo .caption { font-size:10px; padding:14px 0; background:#fff; text-transform:uppercase; letter-spacing:.09em; }
.rb-inner .ph--story .quote { border-left:2px solid var(--rb-red); }
.rb-inner .ph--story .quote p { font-weight:400; font-size:23px; line-height:1.35; }
.rb-inner .ph--visit { background:var(--rb-paper); }
.rb-inner .ph--visit > .wrap { padding-top:64px; }
.rb-inner .room__img { padding:10px; background:#fff; border:1px solid var(--rb-line); }
.rb-inner .room__card { padding:38px; border:1px solid var(--rb-line); border-top:3px solid var(--rb-red); }
.rb-inner .room__facts dt { letter-spacing:.17em; }
.rb-inner .room__facts dd { margin-top:13px; }
.rb-inner .hours li { padding:8px 0; border-bottom:1px solid #eee1df; font-size:14px; }

/* Menus have a chapter system; galleries have captions and breathing space. */
.rb-inner [data-menu-number] { position:relative; isolation:isolate; }
.rb-inner [data-menu-number] .label { position:relative; }
.rb-inner [data-menu-number] .label::before { content:attr(data-chapter); display:block; color:var(--rb-red); font-size:54px; line-height:1; letter-spacing:-.06em; font-weight:400; margin-bottom:22px; }
.rb-inner [data-menu-number="01"] .label::after { content:''; position:absolute; right:24px; top:24px; width:65px; height:65px; background:url('img/brand/rosette.svg') center/contain no-repeat; opacity:.55; pointer-events:none; }
.rb-inner [data-menu-number] .label__title { font-size:clamp(36px,3.9vw,56px); border-bottom:2px solid var(--rb-red); }
.rb-inner [data-menu-number] .label:not(.label--open) { padding:32px; border-top:1px solid var(--rb-line); }
.rb-inner .mcat__photos { gap:14px; }
.rb-inner .mcat__photos figure { padding:6px; border:1px solid var(--rb-line); background:#fff; }
.rb-inner .mcat__photos--two figure:first-child { padding:9px; }
.rb-inner .mcat__photos--two figure:not(:first-child) { margin-top:4px; }
.rb-inner .item__price { color:var(--rb-red); font-size:16px; }
.rb-inner .item__price small { color:#765d54; font-size:10px; }
.rb-inner .item__name { font-weight:700; letter-spacing:-.015em; }
.rb-inner .jumps { box-shadow:0 4px 14px #3c231704; }
.rb-inner .jumps a { border-bottom:1px solid transparent; }
.rb-inner .jumps a:hover, .rb-inner .jumps a.is-current { border-color:var(--rb-red); color:var(--rb-red); }
.rb-inner .tiles { gap:32px 22px; }
.rb-inner .tile__tag { display:block; font-size:15px; line-height:1.45; }
.rb-inner .tile__tag small { font-size:12px; }
.rb-inner .tile img { border:0; }
.rb-inner .tiles:not(.tiles--lead) .tile:nth-child(even) { padding-top:32px; }
.rb-inner .interlude { padding:10px; border:1px solid var(--rb-line); }
.rb-inner .band--hand { background:var(--rb-paper); }
.rb-inner .hand figure { padding:8px; background:white; border:1px solid var(--rb-line); }
.rb-inner .timeline::before { background:#d1aaa7; }
.rb-inner .tl { padding-bottom:42px; }
.rb-inner .tl__when { font-size:11px; }
.rb-inner .tl__what strong { font-size:22px; letter-spacing:-.035em; }
.rb-inner .steps { border-top:2px solid var(--rb-red); }
.rb-inner .step { padding-top:28px; }
.rb-inner .step::before { font-size:54px; margin-bottom:22px; }
.rb-inner .step__title { font-size:22px; }
.rb-inner .offers { gap:44px; }
.rb-inner .offer { border-color:#caaba5; padding-top:28px; }
.rb-inner .offer__title { font-size:28px; max-width:16ch; }
.rb-inner .offer .textlink { margin-top:16px; }
.rb-inner .form { position:relative; border:1px solid #d4b9b4; border-top:3px solid var(--rb-red); padding:38px; background:#fff; }
.rb-inner .form__foot { border-color:var(--rb-line); }
.rb-inner .qty { padding:12px 0; }
.rb-inner .field input, .rb-inner .field select, .rb-inner .field textarea { background:#fffdfd; }
.rb-inner .choice__row input:checked + span { background:var(--rb-red); }
.rb-inner .rb-preview-form-note { font-size:11px; color:#765d54; line-height:1.6; }
.rb-inner .closer { position:relative; background:var(--rb-paper); border:0; padding:64px 0; }
.rb-inner .closer__row { gap:28px 64px; }
.rb-inner .closer__title { font-size:clamp(36px,4vw,56px); max-width:16ch; }

/* The repaired approved non-food barn appears once as the closing signature. */
.rb-site .rb-footer-drawing { padding-top:20px; padding-bottom:0; min-height:130px; }
.rb-site .rb-footer-drawing img { width:260px; margin-bottom:-1px; height:auto; }
.rb-site .footer__grid { grid-template-columns:1.3fr .8fr 1.15fr 1fr; padding-top:48px; padding-bottom:48px; gap:42px; }
.rb-site .footer__word { font-size:28px; }
.rb-site .footer__line { font-size:13px; max-width:27ch; }
.rb-site .footer__head { font-size:10px; letter-spacing:.16em; }
.rb-site .footer__nav a:hover { color:var(--rb-red); }
.rb-site .footer__col a { overflow-wrap:anywhere; }
.rb-site .footer__base { padding-bottom:28px; }

@media (max-width:1100px) {
 .rb-home .findus__grid, .rb-home .findus__markets { gap:36px 48px; }
 .rb-home .findus__room { grid-column:auto; order:0; }
 .rb-home .findus__room img { aspect-ratio:.9; }
 .rb-site .artist__hand { grid-template-columns:130px 130px minmax(0,1fr); gap:16px; }
 .rb-site .footer__grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:36px 60px; }
 .rb-inner .form { padding:30px; }
}
@media (max-width:1020px) {
 .rb-home .pieboard__grid { gap:44px; padding-bottom:72px; }
 .rb-home .pieboard__copy { padding:0; }
 .rb-home .pieboard__title { max-width:16ch; }
 .rb-home .pieboard__photo img { aspect-ratio:1.3; }
 .rb-home .cookie__grid { grid-template-columns:1fr; }
 .rb-home .cookie__title { max-width:none; }
 .rb-home .cookie__photo { max-width:720px; }
 .rb-home .cookie__photo img { aspect-ratio:1.25; }
 .rb-home .cookie__copy { margin-top:48px; }
 .rb-home .cookie__award { max-width:300px; }
 .rb-home .cookie__story { max-width:64ch; }
 .rb-site .artist__grid { gap:40px; }
 .rb-site .artist__portrait { max-width:640px; }
 .rb-site .artist__portrait img { aspect-ratio:1; }
 .rb-site .artist__hand { grid-template-columns:150px 150px minmax(0,1fr); max-width:700px; }
 .rb-site .ingredients__photo { max-width:680px; }
 .rb-site .ingredients__photo img { aspect-ratio:1.35; }
 .rb-site .panel { max-width:720px; }
 .rb-home .cakes9__strip { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
 .rb-home .cakes9__strip img, .rb-home .cakes9__strip li:nth-child(even) img { height:380px; }
 .rb-home .cakes9__strip li:nth-child(even) { padding-top:40px; }
 .rb-site .press__layout { grid-template-columns:1fr; gap:48px; }
 .rb-site .press__photos { max-width:760px; }
 .rb-inner .ph__grid::after { left:auto; right:16px; bottom:16px; opacity:.12; }
 .rb-inner .ph--menu, .rb-inner .ph--season { background:linear-gradient(#fff 0 55%,#fdf6f6 55%); }
 .rb-inner .ph--menu .ph__grid { padding-top:48px; padding-bottom:64px; }
 .rb-inner .ph--menu .ph__photo { max-width:700px; }
 .rb-inner .ph--menu .ph__photo img { aspect-ratio:1.25; }
 .rb-inner .ph--pies .ph__photo--flush img { aspect-ratio:1.25; }
 .rb-inner .slip-wrap { max-width:680px; }
 .rb-inner .tiles:not(.tiles--lead) .tile:nth-child(even) { padding-top:0; }
}
@media (max-width:640px) {
 .rb-arrow { width:17px; height:17px; }
 .rb-ribbon-mark { width:11px; height:11px; }
 .rb-site .rb-preview-ribbon { font-size:max(8px,2.34467cqw); }
 .rb-home .pieboard { padding-top:24px; }
 .rb-home .pieboard__grid { padding-top:12px; padding-bottom:64px; gap:30px; }
 .rb-home .pieboard__title { font-size:42px; max-width:13ch; }
 .rb-home .pieboard__list { margin-top:28px; }
 .rb-home .pieboard__list li { font-size:16px; }
 .rb-home .pieboard__photo { padding:7px; }
 .rb-home .pieboard__photo::before { display:none; }
 .rb-home .pieboard__photo img { aspect-ratio:1; }
 .rb-home .pieboard__photo .caption--tag { left:7px; bottom:18px; font-size:10px; padding:10px 12px; }
 .rb-home .cookie { padding:64px 0; }
 .rb-home .cookie__title { font-size:clamp(43px,12vw,64px); margin-bottom:30px; }
 .rb-home .cookie__photo::after { left:10px; right:-10px; bottom:-10px; top:10px; }
 .rb-home .cookie__copy { margin-top:36px; }
 .rb-home .cookie__award { font-size:58px; }
 .rb-home .shelf { margin-top:48px; padding-top:24px; }
 .rb-site .artist { padding:64px 0; }
 .rb-site .artist__portrait { padding:0 0 16px 14px; }
 .rb-site .artist__portrait::before { inset:16px 14px 0 0; }
 .rb-site .artist__words { padding-top:0; }
 .rb-site .artist__words > .h2 { font-size:52px; }
 .rb-site .artist__quote p { font-size:29px; }
 .rb-site .artist__hand { grid-template-columns:1fr 1fr; gap:18px; margin-top:20px; }
 .rb-site .artist__handnote { grid-column:1/-1; }
 .rb-site .ingredients { padding:64px 0; }
 .rb-site .ingredients__grid { gap:36px; }
 .rb-site .ingredients__photo { padding:7px; }
 .rb-site .panel::after { right:-28px; width:75px; height:150px; top:-25px; opacity:.2; }
 .rb-site .panel__title { font-size:46px; }
 .rb-site .panel__row { font-size:13px; padding:13px 0; }
 .rb-site .panel__row dd { max-width:62%; }
 .rb-home .cakes9 { padding:64px 0; }
 .rb-home .cakes9__title { font-size:44px; }
 .rb-home .cakes9__head { gap:22px; margin-bottom:30px; }
 .rb-home .cakes9__strip { gap:12px; }
 .rb-home .cakes9__strip img, .rb-home .cakes9__strip li:nth-child(even) img { height:240px; }
 .rb-home .cakes9__strip li:nth-child(even) { padding-top:24px; }
 .rb-home .cakes9__flavors { margin-top:30px; gap:20px; }
 .rb-site .press { padding:64px 0; }
 .rb-site .press__photos { padding-right:30px; padding-bottom:32px; }
 .rb-site .press__clip { width:34%; }
 .rb-home .ig { padding:64px 0; }
 .rb-home .findus { padding-top:64px; padding-bottom:32px; }
 .rb-home .findus__title { font-size:48px; margin-bottom:30px; }
 .rb-home .findus__grid { grid-template-columns:1fr; gap:32px; }
 .rb-home .findus__room { grid-column:1; }
 .rb-home .findus__room img { aspect-ratio:1.2; }
 .rb-home .findus__markets { grid-template-columns:1fr; gap:12px; padding-top:30px; }
 .rb-home .findus__markets > p { max-width:42ch; }
 .rb-home .findus .mk { grid-column:1; grid-row:auto; margin-top:12px; }
 .rb-home .findus .mk__row { gap:3px 18px; }
 .rb-inner .ph__photo { padding:7px; }
 .rb-inner .ph__photo::before { inset:17px -8px -8px 17px; }
 .rb-editorial-label { font-size:9px; letter-spacing:0; padding-top:12px; }
 .rb-inner .ph--menu .ph__grid { padding-top:42px; padding-bottom:56px; }
 .rb-inner .ph__grid::after { display:none; }
 .rb-inner .slip-wrap { padding-bottom:0; }
 .rb-inner .slip { position:relative; width:auto; right:auto; padding:22px; margin:-24px 10px 0; }
 .rb-inner .slip-photo { padding:7px; }
 .rb-inner .slip__head { font-size:23px; }
 .rb-inner .pinned::before { inset:24px 14px 0; }
 .rb-inner .room__card { padding:26px 20px; }
 .rb-inner [data-menu-number] .label::before { font-size:40px; margin-bottom:18px; }
 .rb-inner [data-menu-number] .label:not(.label--open) { padding:24px 20px; }
 .rb-inner [data-menu-number] .label__title { font-size:35px; }
 .rb-inner .mcat__photos figure { padding:5px; }
 .rb-inner .tiles { gap:26px 14px; }
 .rb-inner .tile__tag { font-size:14px; }
 .rb-inner .interlude { padding:7px; margin-left:0; margin-right:0; }
 .rb-inner .steps .step::before { font-size:28px; margin:0; }
 .rb-inner .steps .step { padding:20px 0; }
 .rb-inner .steps .step__title { font-size:20px; }
 .rb-inner .offers { gap:30px; }
 .rb-inner .offer__title { font-size:26px; }
 .rb-inner .form { padding:26px 20px; }
 .rb-inner .closer { padding:48px 0; }
 .rb-inner .closer__title { font-size:38px; }
 .rb-site .rb-footer-drawing { min-height:110px; }
 .rb-site .rb-footer-drawing img { width:220px; }
 .rb-site .footer__grid { grid-template-columns:1fr; gap:28px; padding-top:34px; padding-bottom:34px; }
 .rb-site .footer__nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
 .rb-site .footer__nav .footer__head { grid-column:1/-1; margin-bottom:10px; }
 .rb-site .footer__nav a { padding:10px 0; }
 .rb-site .footer__line { max-width:38ch; }
 .rb-site .footer__col, .rb-site .footer__brand, .rb-site .footer__nav { grid-column:1/-1; }
}
@media (prefers-reduced-motion:reduce) { .rb-site * { transition:none!important; } }

/* ---- Browser review of the polish pass, Oct 14 2026 (Claude). Layout corrections only;
   hero art, photography, content and order fields are unchanged. ---- */
/* Homepage pie ledger: the caption tag sat on Randell's handwritten "GF Chocolate Pecan" card.
   It now runs under the photo inside the mat, the same label pattern as the menu's pastry-case frame. */
.rb-home .pieboard__photo .caption--tag { position:static; display:flex; flex-direction:row; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:12px; max-width:none; margin:0; padding:14px 2px 2px; background:transparent; border:0; box-shadow:none; font-size:11px; line-height:1.5; letter-spacing:.04em; color:#765d54; }
.rb-home .pieboard__photo .caption--tag strong { display:inline; margin:0; font-size:11px; color:var(--rb-red); }
/* Randell's portrait: the paper mat stretched to the full height of the text column (about 170px of
   empty paper under the photo at 1440). It now hugs the portrait. */
.rb-site .artist__portrait { align-self:start; }
/* Market ledger: the intro line was pushed to the bottom of a tall row, far from its heading. */
.rb-home .findus__markets { grid-template-rows:auto 1fr; }
.rb-home .findus__markets > p { align-self:start; }
/* Cake strip: the even photos ended 8px short of the odd ones (a near miss); they now share a baseline. */
.rb-home .cakes9__strip li:nth-child(even) img { height:calc(clamp(280px,31vw,460px) - 64px); }
/* Cake flavours: three columns under four photos read as captions, pairing the wrong names with the
   pictured cakes. They now read as a full-width list, like the site's other ledgers. */
@media (min-width:641px) {
 .rb-home .cakes9__flavors { display:block; padding-top:0; }
 .rb-home .cakes9__flavors li { display:grid; grid-template-columns:minmax(0,19rem) minmax(0,1fr) auto; align-items:baseline; gap:4px 32px; padding:16px 0; border-bottom:1px solid var(--rb-line); }
 .rb-home .cakes9__flavors .chips, .rb-home .cakes9__flavors li > .chip { margin-top:0; justify-self:end; }
}
/* Botanical linework: kept inside the page at every width (it was clipped by 15-20px at 768-1440). */
.rb-inner .ph--cake .ph__grid::after { right:0; }
@media (min-width:641px) and (max-width:1100px) { .rb-site .panel::after { right:0; top:-86px; width:76px; height:150px; } }
/* Desktop header links are 12px-tall boxes at 1440 (they scale with the approved header). Each gets an
   invisible hit area of about 40px; nothing moves. */
.rb-site .rb-navigation a::before { content:''; position:absolute; inset:-14px -8px; }
@media (max-width:640px) {
 /* Seasonal pies slip: it was 2px narrower than the photo, leaving slivers of photo and frame lines
   at both sides. It now spans the frame. */
 .rb-inner .slip { margin:-24px 0 0; }
 /* keep the whole handwritten card in the square phone crop */
 .rb-home .pieboard__photo img { object-position:32% 100%; }
 /* Ingredients on phones: label and value were split into a zigzag (value pushed right on its own line). */
 .rb-site .panel__row { display:grid; grid-template-columns:minmax(0,9.5em) minmax(0,1fr); gap:2px 16px; }
 .rb-site .panel__row dd { margin:0; max-width:none; text-align:left; }
 .rb-home .cakes9__flavors li { padding-bottom:14px; border-bottom:1px solid var(--rb-line); }
}
/* Menu chapter 06 (coffee and tea) carried no chapter number. */
.rb-inner #drinks [data-chapter]::before { content:attr(data-chapter); display:block; color:var(--rb-red); font-size:54px; line-height:1; letter-spacing:-.06em; font-weight:400; margin-bottom:22px; }
@media (max-width:640px) { .rb-inner #drinks [data-chapter]::before { font-size:40px; margin-bottom:18px; } }
/* Market ledger at 320-360px: the day and time broke mid-phrase ("8:30 / to 1"); stack the row instead. */
@media (max-width:360px) {
 .rb-home .findus .mk__row { grid-template-columns:1fr; gap:2px; }
 .rb-home .findus .mk__name { grid-row:auto; }
 .rb-home .findus .mk__note { grid-column:1; }
}


/* SOURCE: presentation.css */
/* Client-presentation composition. The approved homepage opening is untouched.
   Photography remains genuine; no image filters, warping, or generated food. */
.fp-section { padding:104px 0; }
.fp-eyebrow { display:flex; align-items:center; gap:12px; margin:0 0 24px; color:#c10b24; font:700 12px/1.5 Arial,Helvetica,sans-serif; letter-spacing:.13em; text-transform:uppercase; }
.fp-eyebrow::before { content:''; display:block; width:26px; height:1px; flex:none; background:currentColor; }
.fp-heading { margin:0; color:#3c2317; font:700 clamp(44px,5.3vw,80px)/.99 Arial,Helvetica,sans-serif; letter-spacing:-.057em; text-wrap:balance; }
.fp-heading > span { color:#c10b24; }
.fp-intro, .fp-body { font:400 17px/1.75 Arial,Helvetica,sans-serif; color:#60473e; text-wrap:pretty; }
.fp-body + .fp-body { margin-top:16px; }
.fp-section-head { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); align-items:end; gap:48px 100px; margin-bottom:48px; }
.fp-section-head > .fp-intro { max-width:36ch; padding-bottom:4px; }
.fp-home .btn { min-height:52px; padding:17px 24px; gap:28px; }
.fp-home .textlink { gap:26px; font-size:14px; padding:12px 0 8px; }
.fp-counter { padding-top:56px; padding-bottom:96px; }
.fp-counter .fp-heading { font-size:clamp(42px,4.7vw,70px); }
.fp-counter-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.fp-collection { display:block; text-decoration:none; }
.fp-collection-photo { overflow:hidden; background:#fdf5f5; }
.fp-collection-photo img { width:100%; height:auto; aspect-ratio:1.07; object-fit:cover; }
.fp-collection:nth-child(1) img { object-position:50% 35%; }
.fp-collection:nth-child(2) img { object-position:50% 50%; }
.fp-collection:nth-child(3) img { object-position:50% 40%; }
.fp-collection-caption { display:grid; grid-template-columns:20px minmax(0,1fr) 20px; gap:12px; align-items:start; padding:22px 0 0; border-top:1px solid #dac5bf; margin-top:16px; }
.fp-collection-number { color:#c10b24; font-size:11px; padding-top:5px; }
.fp-collection-caption h3 { font-size:27px; letter-spacing:-.045em; line-height:1.1; margin:0; }
.fp-collection-caption p { font-size:13px; line-height:1.6; margin-top:8px; color:#765d54; }
.fp-collection-caption .rb-arrow { margin-top:5px; }
.fp-collection:hover h3 { color:#c10b24; }
.fp-signature { background:#fdf5f5; }
.fp-signature-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:center; gap:clamp(48px,7vw,108px); }
.fp-signature-photo img { width:100%; height:auto; }
.fp-signature-photo figcaption { display:flex; justify-content:space-between; gap:16px; border-top:1px solid #d8bdb9; margin-top:18px; padding-top:13px; font-size:11px; line-height:1.6; color:#765d54; }
.fp-signature-photo figcaption span:first-child { color:#3c2317; font-weight:700; }
.fp-signature-copy .fp-heading { font-size:clamp(44px,4.7vw,72px); margin-bottom:28px; }
.fp-signature-copy .fp-body { font-size:16px; }
.fp-signature-recognition { margin-top:28px; padding-top:18px; border-top:1px solid #d8bdb9; color:#3c2317; font-size:11px; letter-spacing:.07em; text-transform:uppercase; }
.fp-signature-recognition strong { display:inline-block; margin-left:14px; color:#c10b24; font-size:26px; letter-spacing:-.04em; }
.fp-signature-copy .btn { margin-top:24px; }
.fp-randell { padding-top:120px; padding-bottom:112px; }
.fp-randell-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:60px 100px; align-items:center; }
.fp-randell-copy .fp-heading { font-size:clamp(58px,6.6vw,100px); }
.fp-quote { margin:32px 0 24px; padding:0; border:0; }
.fp-quote p { font-size:clamp(23px,2.2vw,32px); line-height:1.3; letter-spacing:-.035em; max-width:27ch; }
.fp-quote cite { display:block; margin-top:16px; font-size:11px; line-height:1.6; letter-spacing:.04em; font-style:normal; color:#765d54; }
.fp-randell-copy > .fp-body { font-size:15px; max-width:48ch; }
.fp-randell-copy > .textlink { margin-top:22px; }
.fp-randell-portrait { max-width:560px; justify-self:end; width:100%; }
.fp-randell-portrait img { width:100%; height:auto; }
.fp-randell-portrait figcaption { font-size:11px; color:#765d54; padding-top:13px; }
.fp-handwriting { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) 220px 220px; gap:28px; align-items:center; border-top:1px solid #e2d2ce; padding-top:48px; }
.fp-handwriting a { display:block; }
.fp-handwriting img { width:100%; height:auto; }
.fp-handwriting-note { padding-right:24px; }
.fp-small-rule { display:block; background:#c10b24; width:36px; height:2px; margin-bottom:22px; }
.fp-handwriting-note p { font-size:36px; line-height:1.12; letter-spacing:-.04em; color:#3c2317; }
.fp-handwriting-note > span:last-child { display:block; font-size:13px; line-height:1.7; color:#765d54; margin-top:18px; }
.fp-season { background:#b60b24; color:#fff; }
.fp-season-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:64px; align-items:center; padding-top:64px; padding-bottom:64px; }
.fp-season-copy { padding:16px 0; }
.fp-season .fp-eyebrow, .fp-season .fp-body, .fp-season .fp-heading { color:#fff; }
.fp-season .fp-heading { font-size:clamp(46px,5.4vw,80px); letter-spacing:-.055em; }
.fp-season .fp-heading span { color:#ffc9ce; }
.fp-season .fp-body { font-size:15px; line-height:1.75; max-width:42ch; margin-top:28px; }
.fp-pie-list { list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:26px; margin:26px 0 0; padding:0; counter-reset:pie; }
.fp-pie-list li { display:grid; grid-template-columns:18px minmax(0,1fr); gap:8px; padding:11px 0; font-size:13px; line-height:1.5; border-top:1px solid #ffffff45; counter-increment:pie; }
.fp-pie-list li::before { content:counter(pie,decimal-leading-zero); font-size:9px; padding-top:2px; color:#ffc9ce; }
.fp-season-actions { display:flex; flex-wrap:wrap; gap:16px 24px; align-items:center; margin-top:28px; }
.fp-home .fp-season .btn--white { color:#b60b24; background:#fff; border-color:#fff; }
.fp-season-call { color:#fff; font-size:12px; text-decoration:none; padding:12px 0; border-bottom:1px solid #ffffff75; }
.fp-season-photo { padding:12px 12px 0; background:#fff; color:#3c2317; }
.fp-season-photo img { display:block; width:100%; height:auto; }
.fp-season-photo figcaption { display:flex; justify-content:space-between; flex-wrap:wrap; gap:6px 12px; padding:16px 2px; font-size:10px; line-height:1.6; color:#765d54; }
.fp-season-photo figcaption strong { color:#b60b24; font-size:11px; }
.fp-celebrations { padding-top:112px; padding-bottom:104px; }
.fp-celebrations .fp-heading { font-size:clamp(42px,4.8vw,72px); }
.fp-celebrations-intro .textlink { margin-top:18px; }
.fp-cake-gallery { display:grid; grid-template-columns:1.14fr 1fr 1fr; gap:26px; align-items:end; }
.fp-cake-gallery a { display:block; text-decoration:none; min-width:0; }
.fp-cake-gallery img { width:100%; height:clamp(330px,34vw,510px); object-fit:cover; }
.fp-cake-gallery a:not(:first-child) img { height:clamp(300px,29vw,435px); }
.fp-cake-gallery a > span { display:flex; justify-content:space-between; align-items:baseline; gap:16px; margin-top:16px; padding-top:13px; border-top:1px solid #dac5bf; font-size:12px; color:#60473e; }
.fp-cake-gallery a > span > span { font-size:20px; color:#c10b24; line-height:1; }
.fp-gallery-note { margin-top:28px; font-size:12px; line-height:1.7; color:#765d54; }
.fp-visit { background:#fdf5f5; }
.fp-visit-grid { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center; gap:clamp(48px,7vw,108px); }
.fp-visit-photo img { width:100%; height:auto; }
.fp-visit-photo figcaption { margin-top:14px; color:#765d54; font-size:11px; line-height:1.6; }
.fp-visit-copy .fp-heading { margin-bottom:26px; }
.fp-visit-copy .fp-body { max-width:39ch; font-size:16px; }
.fp-visit-facts { display:grid; grid-template-columns:1fr 1.2fr; gap:24px; padding-top:24px; margin:28px 0 0; border-top:1px solid #d8bdb9; }
.fp-visit-facts dt { color:#c10b24; font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:700; margin-bottom:10px; }
.fp-visit-facts dd { margin:0; font-size:13px; line-height:1.8; }
.fp-visit-actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 28px; margin-top:28px; }

/* Inner pages inherit a quieter system, with fewer repeated paper treatments. */
.fp-inner .ph__grid::after, .fp-inner .panel::after, .fp-inner .ph__photo::before { display:none; }
.fp-inner .ph__photo { padding:0; border:0; }
.fp-inner .rb-editorial-label { padding-top:16px; font-size:11px; border-top:1px solid #dac5bf; margin-top:16px; }
.fp-inner .ph__kicker, .fp-inner .label__kicker, .fp-inner .panel__kicker { font-size:12px; letter-spacing:.12em; }
.fp-inner .ph__lede { font-size:18px; line-height:1.7; }
.fp-inner .ph__note { font-size:14px; line-height:1.7; }
.fp-inner .item__name { font-size:17px; line-height:1.4; }
.fp-inner .item__desc { font-size:15px; line-height:1.7; }
.fp-inner .item__price { font-size:18px; }
.fp-inner .field label, .fp-inner .field legend { font-size:11px; letter-spacing:.08em; }
.fp-inner .mcat__photos figure, .fp-inner .mcat__photos--two figure:first-child { padding:0; border:0; background:transparent; }
.fp-inner [data-menu-number] .label::after { display:none; }
.fp-inner .label, .fp-inner [data-menu-number] .label:not(.label--open) { padding:28px; border:1px solid #ddc9c4; }
.fp-inner .label--open { padding:0; border:0; }
.fp-inner .ingredients__photo { border:0; padding:0; }
.fp-inner .hand figure { padding:0; border:0; }
.fp-inner .hand img { border:0; }
.fp-inner .ph--story .ph__photo { padding:0; }
.fp-inner .ph--story .ph__photo .caption { background:transparent; font-size:11px; }
.fp-inner .interlude { border:0; padding:0; }
.fp-inner .tile__tag { font-size:16px; }
.fp-inner .tile__tag small { font-size:13px; }
.fp-inner .room__img { padding:0; border:0; }
.fp-inner .room__card { box-shadow:0 12px 36px #3c23170a; }
.fp-inner .room__facts dt { font-size:11px; }
.fp-inner .room__facts dd, .fp-inner .hours li { font-size:16px; }
.fp-inner .faq summary { font-size:18px; }
.fp-inner .faq details > p { font-size:16px; }
.fp-inner .tl__what p { font-size:16px; }
.fp-inner .offer p { font-size:16px; }
.fp-inner .step p { font-size:16px; }
.fp-inner .ph--menu { background:linear-gradient(90deg,#fff 53%,#fdf5f5 53%); }
.fp-inner .ph--menu .index a { font-size:14px; }
.fp-inner .ph--menu .ph__legend { font-size:13px; }
.fp-inner .ph--menu .ph__photo--tall img { aspect-ratio:.86; }
.fp-inner .ph--pies .ph__photo--flush img { aspect-ratio:.94; }

/* Celebration opening: an editorial headline followed by a full-width portfolio. */
.fp-celebrate .ph--cake .ph__grid { grid-template-columns:1fr; gap:46px; padding-top:64px; padding-bottom:64px; }
.fp-celebrate .ph--cake .ph__copy { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); grid-template-areas:'kicker kicker' 'title lede' 'title actions'; gap:0 80px; max-width:none; }
.fp-celebrate .ph--cake .ph__kicker { grid-area:kicker; }
.fp-celebrate .ph--cake .ph__title { grid-area:title; font-size:clamp(52px,6.4vw,98px); max-width:13ch; }
.fp-celebrate .ph--cake .ph__lede { grid-area:lede; margin-top:6px; }
.fp-celebrate .ph--cake .ph__lede::before { display:none; }
.fp-celebrate .ph--cake .hero__actions { grid-area:actions; margin-top:24px; align-self:start; }
.fp-celebrate .pinned { display:grid; grid-template-columns:1.1fr .85fr 1fr; align-items:end; gap:24px; width:100%; max-width:none; height:auto; padding:0; }
.fp-celebrate .pinned::before { display:none; }
.fp-celebrate .pinned figure { position:static!important; transform:none; width:auto!important; height:auto!important; margin:0!important; }
.fp-celebrate .pinned img { width:100%; height:auto; aspect-ratio:auto; object-fit:contain; border:0; box-shadow:none; }
.fp-celebrate .pinned__c { display:block; }
.fp-celebrate .pinned a { display:block; }
.fp-celebrate [data-lightbox]::after { content:'+'; position:absolute; right:12px; top:12px; width:28px; height:28px; background:#fff; color:#3c2317; display:grid; place-items:center; font-size:20px; line-height:1; }
.fp-celebrate .tiles--lead { grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-areas:none; gap:24px; }
.fp-celebrate .tiles--lead .tile { grid-area:auto; display:block; padding-top:0; }
.fp-celebrate .tiles--lead .tile img { height:auto; aspect-ratio:.88; min-height:0; flex:none; }
.fp-celebrate .tiles--lead .tile a { display:block; }
.fp-celebrate .band:has(#gallery-title) { padding-top:64px; border-top:1px solid #e2d2ce; }

/* The site still has no motion-dependent content. Image links work without JS. */
[data-lightbox] { position:relative; cursor:zoom-in; }
[data-lightbox]:focus-visible { outline:3px solid #c10b24; outline-offset:5px; }
.fp-lightbox { width:min(1120px,94vw); max-width:none; max-height:94dvh; padding:52px 28px 22px; background:#fff; border:0; color:#3c2317; }
.fp-lightbox::backdrop { background:#24150fe8; }
.fp-lightbox img { display:block; width:auto; max-width:100%; max-height:calc(94dvh - 132px); margin:auto; object-fit:contain; }
.fp-lightbox-close { position:absolute; top:10px; right:12px; min-width:44px; min-height:44px; padding:10px; border:0; background:#fff; color:#3c2317; font:700 14px/1 Arial,sans-serif; cursor:pointer; }
.fp-lightbox-caption { margin:16px auto 0; max-width:70ch; font-size:13px; line-height:1.6; text-align:center; }
html.fp-lightbox-open { overflow:hidden; }
.fp-home .footer__head, .fp-inner .footer__head { font-size:11px; }
.fp-home .footer__line, .fp-inner .footer__line { font-size:14px; }
.fp-home .footer__col, .fp-inner .footer__col, .fp-home .footer__nav, .fp-inner .footer__nav { font-size:14px; }

@media (max-width:1100px) {
 .fp-section { padding:80px 0; }
 .fp-section-head { gap:36px 56px; }
 .fp-counter { padding-top:44px; }
 .fp-collection-caption { grid-template-columns:minmax(0,1fr) 20px; gap:10px; }
 .fp-collection-number { display:none; }
 .fp-collection-caption h3 { font-size:25px; }
 .fp-randell-grid { gap:44px 56px; }
 .fp-handwriting { grid-template-columns:minmax(0,1fr) 180px 180px; }
 .fp-handwriting-note p { font-size:30px; }
 .fp-season-grid { gap:40px; }
 .fp-season .fp-heading { font-size:60px; }
 .fp-season .fp-body { font-size:14px; }
 .fp-pie-list { grid-template-columns:1fr; margin-top:22px; }
 .fp-pie-list li { padding:8px 0; font-size:13px; }
 .fp-celebrate .ph--cake .ph__copy { gap:0 48px; }
 .fp-celebrate .ph--cake .ph__title { font-size:74px; }
}
@media (max-width:850px) {
 .fp-section-head { grid-template-columns:1fr; gap:24px; }
 .fp-section-head > .fp-intro { max-width:54ch; }
 .fp-counter-grid { gap:20px; }
 .fp-collection-caption h3 { font-size:22px; }
 .fp-collection-caption p { font-size:12px; }
 .fp-signature-grid, .fp-visit-grid { grid-template-columns:1fr; gap:36px; }
 .fp-signature-photo { max-width:720px; }
 .fp-signature-copy { max-width:620px; }
 .fp-randell-grid { gap:40px; align-items:start; }
 .fp-randell-copy .fp-heading { font-size:64px; }
 .fp-quote p { font-size:25px; }
 .fp-handwriting { grid-template-columns:minmax(0,1fr) 155px 155px; gap:20px; }
 .fp-handwriting-note p { font-size:26px; }
 .fp-handwriting-note > span:last-child { font-size:12px; }
 .fp-season-grid { grid-template-columns:1fr; gap:36px; padding-top:56px; padding-bottom:56px; }
 .fp-season-copy { max-width:640px; padding:0; }
 .fp-season .fp-heading { font-size:66px; }
 .fp-pie-list { grid-template-columns:1fr 1fr; gap:0 26px; }
 .fp-season-photo { max-width:620px; justify-self:center; width:100%; }
 .fp-cake-gallery { gap:20px; }
 .fp-cake-gallery img { height:340px; }
 .fp-cake-gallery a:not(:first-child) img { height:290px; }
 .fp-visit-photo { max-width:760px; }
 .fp-visit-copy { max-width:620px; }
 .fp-inner .ph--menu { background:linear-gradient(#fff 0 55%,#fdf5f5 55%); }
 .fp-inner .ph--menu .ph__photo--tall img, .fp-inner .ph--pies .ph__photo--flush img { aspect-ratio:1.25; }
 .fp-celebrate .ph--cake .ph__copy { grid-template-columns:1fr; grid-template-areas:'kicker' 'title' 'lede' 'actions'; gap:0; }
 .fp-celebrate .ph--cake .ph__title { max-width:14ch; }
 .fp-celebrate .ph--cake .ph__lede { max-width:54ch; margin-top:26px; }
 .fp-celebrate .pinned { gap:16px; }
 .fp-celebrate .tiles--lead { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px) {
 .fp-section { padding:64px 0; }
 .fp-eyebrow { font-size:11px; margin-bottom:20px; letter-spacing:.1em; }
 .fp-heading { font-size:clamp(43px,12vw,64px); }
 .fp-intro, .fp-body { font-size:16px; line-height:1.7; }
 .fp-section-head { margin-bottom:30px; gap:22px; }
 .fp-counter { padding-top:32px; padding-bottom:60px; }
 .fp-counter .fp-heading { font-size:46px; }
 .fp-counter-grid { grid-template-columns:1fr 1fr; gap:28px 16px; }
 .fp-collection:first-child { grid-column:1/-1; }
 .fp-collection-photo img { aspect-ratio:.83; }
 .fp-collection:first-child .fp-collection-photo img { aspect-ratio:1.35; }
 .fp-collection-caption { padding-top:14px; margin-top:12px; gap:8px; }
 .fp-collection-caption h3 { font-size:22px; line-height:1.05; }
 .fp-collection-caption p { font-size:12px; line-height:1.5; margin-top:8px; }
 .fp-collection-caption .rb-arrow { width:15px; height:15px; margin-top:3px; }
 .fp-signature-grid { gap:30px; }
 .fp-signature-photo figcaption { font-size:10px; gap:10px; }
 .fp-signature-copy .fp-heading { font-size:48px; margin-bottom:24px; }
 .fp-signature-copy .fp-body { font-size:16px; }
 .fp-randell-grid { grid-template-columns:1fr; gap:32px; }
 .fp-randell-copy .fp-heading { font-size:64px; }
 .fp-randell-copy { order:0; }
 .fp-randell-portrait { justify-self:stretch; max-width:480px; order:1; }
 .fp-handwriting { grid-column:1; order:2; grid-template-columns:1fr 1fr; gap:22px 16px; padding-top:28px; }
 .fp-handwriting-note { grid-column:1/-1; padding:0; }
 .fp-handwriting-note p { font-size:32px; }
 .fp-handwriting-note p br { display:none; }
 .fp-handwriting-note > span:last-child { margin-top:12px; font-size:13px; }
 .fp-small-rule { margin-bottom:18px; }
 .fp-season-grid { padding-top:52px; padding-bottom:44px; gap:32px; }
 .fp-season .fp-heading { font-size:clamp(44px,12vw,64px); }
 .fp-season .fp-body { margin-top:24px; font-size:15px; }
 .fp-pie-list { grid-template-columns:1fr; margin-top:24px; }
 .fp-pie-list li { padding:10px 0; font-size:14px; }
 .fp-season-photo { padding:8px 8px 0; }
 .fp-season-photo figcaption { padding:13px 2px; font-size:11px; }
 .fp-season-photo figcaption strong { font-size:12px; }
 .fp-celebrations .fp-heading { font-size:44px; }
 .fp-celebrations-intro .textlink { margin-top:14px; }
 .fp-cake-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px; }
 .fp-cake-gallery a:first-child { grid-column:1/-1; }
 .fp-cake-gallery img, .fp-cake-gallery a:not(:first-child) img { width:100%; height:auto; aspect-ratio:.85; object-fit:cover; }
 .fp-cake-gallery a:first-child img { aspect-ratio:.95; object-position:50% 40%; }
 .fp-cake-gallery a > span { font-size:12px; gap:8px; margin-top:12px; padding-top:10px; line-height:1.5; }
 .fp-gallery-note { font-size:12px; margin-top:24px; }
 .fp-visit-grid { gap:30px; }
 .fp-visit-copy .fp-heading { font-size:54px; }
 .fp-visit-facts { grid-template-columns:1fr; gap:20px; padding-top:22px; margin-top:24px; }
 .fp-visit-facts dt { font-size:11px; margin-bottom:8px; }
 .fp-visit-facts dd { font-size:15px; }
 .fp-inner .ph__kicker, .fp-inner .label__kicker, .fp-inner .panel__kicker { font-size:11px; }
 .fp-inner .ph__lede { font-size:16px; }
 .fp-inner .ph--menu .index a { font-size:13px; }
 .fp-inner .ph__note { font-size:13px; }
 .fp-inner .item__name { font-size:16px; }
 .fp-inner .item__desc { font-size:15px; }
 .fp-inner .item__price { font-size:17px; }
 .fp-inner .label, .fp-inner [data-menu-number] .label:not(.label--open) { padding:24px 20px; }
 .fp-inner .label--open { padding:0; }
 .fp-inner .field label, .fp-inner .field legend { font-size:11px; }
 .fp-celebrate .ph--cake .ph__grid { padding-top:42px; padding-bottom:48px; gap:32px; }
 .fp-celebrate .ph--cake .ph__title { font-size:clamp(46px,12vw,66px); }
 .fp-celebrate .ph--cake .hero__actions { margin-top:20px; }
 .fp-celebrate .pinned { grid-template-columns:1fr 1fr; gap:16px; }
 .fp-celebrate .pinned figure:first-child { grid-column:1/-1; }
 .fp-celebrate .pinned img, .fp-celebrate .pinned__b img, .fp-celebrate .pinned__c img { width:100%; height:auto; aspect-ratio:auto; }
 .fp-celebrate .tiles--lead { gap:18px 14px; }
 .fp-celebrate .band:has(#gallery-title) { padding-top:48px; }
 .fp-lightbox { width:94vw; padding:54px 14px 18px; }
 .fp-lightbox-caption { font-size:12px; }
}
@media (max-width:359px) {
 .fp-counter .fp-heading { font-size:42px; }
 .fp-collection-caption h3 { font-size:20px; }
 .fp-collection-caption { grid-template-columns:1fr; }
 .fp-collection-caption .rb-arrow { display:none; }
 .fp-signature-copy .fp-heading { font-size:44px; }
 .fp-randell-copy .fp-heading { font-size:56px; }
 .fp-season-actions .btn { width:100%; justify-content:space-between; }
 .fp-celebrations .fp-heading { font-size:40px; }
 .fp-cake-gallery a > span { font-size:11px; }
}
@media (prefers-reduced-motion:reduce) { .fp-home *, .fp-inner * { scroll-behavior:auto; transition:none!important; } }

/* ---- Browser review of the presentation revision, Oct 14 2026 (Claude). Layout corrections only;
   photographs, copy, hero and order fields are unchanged. ---- */
/* Randell's hand-lettered cards: they were 220px (1440), 180px (1024) and 155px (768) wide, with a wide
   empty gap beside the note. They now hang under the portrait at exactly its width, so the handwriting
   is larger and the cards line up with the photo above. */
@media (min-width:1101px) {
 .fp-handwriting { grid-template-columns:minmax(0,1fr) repeat(2,calc((min(560px,(100% - 100px) / 2) - 28px) / 2)); }
}
@media (min-width:851px) and (max-width:1100px) {
 .fp-handwriting { grid-template-columns:minmax(0,1fr) repeat(2,calc((min(560px,(100% - 56px) / 2) - 28px) / 2)); }
}
@media (min-width:641px) and (max-width:850px) {
 .fp-handwriting { grid-template-columns:repeat(2,minmax(0,300px)); }
 .fp-handwriting-note { grid-column:1/-1; padding-right:0; }
}
/* Pies & cakes: the lead pecan photo cut off Randell's handwritten "GF Chocolate Pecan" label on
   tablets and phones. Anchor the crop to the bottom so the whole label shows. */
.fp-inner .tiles--lead .tile img[src$="pie-gf-choc-pecan.webp"] { object-position:50% 100%; }
/* Photo viewer on phones: the enlarged photo was narrower than the same photo on the page.
   It now runs edge to edge. */
@media (max-width:640px) {
 .fp-lightbox { width:100%; max-width:100%; padding:54px 0 18px; }
 .fp-lightbox-caption { padding:0 16px; }
}
/* Photo viewer on short screens (landscape phones, 200% zoom): the caption and padding left the
   "enlarged" photo smaller than its thumbnail (183 x 244 vs 281 x 374 at 640 x 400). The photo now
   takes the full height, with Close and the caption beside it. */
@media (max-height:520px) {
 .fp-lightbox[open] { display:grid; grid-template-columns:minmax(0,1fr) minmax(88px,160px); grid-template-rows:auto minmax(0,1fr); gap:12px 16px; width:100%; max-width:100%; height:100%; max-height:100%; margin:0; padding:10px 12px; }
 .fp-lightbox img { grid-column:1; grid-row:1 / -1; align-self:center; max-width:100%; max-height:calc(100dvh - 20px); }
 .fp-lightbox-close { position:static; grid-column:2; grid-row:1; justify-self:end; }
 .fp-lightbox-caption { grid-column:2; grid-row:2; align-self:end; margin:0; padding:0; text-align:left; font-size:12px; }
}


/* SOURCE: refresh.css */
/* Red Barn refresh, October 16 2026 (Claude, at Nick's request).
   1. Randell's typeface: Century Gothic (her rule since Sept). Visitors with Century Gothic installed see it;
      everyone else gets TeX Gyre Adventor (GUST Font Licence), already bundled in fonts/. The homepage hero
      keeps its approved type until ChatGPT redesigns it with her apple lattice pie.
   2. Photo crops for her Oct 16 photos (layout crops only).
   3. Homepage order: the café and bread right after the hero, then the breakfast cookie, then whoopie pies. */
/* ---- Randell's feedback and new photos, Oct 16 2026 (Claude). Photos are hers, resized only;
   these rules are layout crops (object-fit) that keep each slot's previous proportions. ---- */
.fp-signature-photo img { aspect-ratio:956/746; object-fit:cover; object-position:50% 58%; }
.fp-inner .split .framed img[src$="storefront-night.webp"] { aspect-ratio:900/937; object-position:50% 0%; }
.rb-site .ingredients__photo img[src$="sourdough-loaf.webp"] { object-position:50% 10%; }

/* ---- 1. Typeface ---- */
:root { --rb-type:"RB Gothic","Century Gothic",CenturyGothic,"URW Gothic",sans-serif; }
/* !important only on font-family: several older components set Arial with font shorthands at higher specificity. */
.rb-site, .rb-site *:not(.rb-hero, .rb-hero *) { font-family:var(--rb-type) !important; }
/* Geometric capitals are wider than Arial's; the Arial-era tracking (-.05 to -.06em) made letters touch. */
.rb-site :is(h2, h3, .ph__title, .footer__word, .fp-handwriting-note p, .slip__head, .fp-signature-recognition strong):not(.rb-hero *) { letter-spacing:-.03em !important; }

/* ---- 3. Homepage order: the place, then the breakfast cookie, then whoopie pies ---- */
.fp-heading--plain, .fp-heading--plain > span { color:#3c2317; }

/* The place: her brick-and-wood café, the way her reference site leads, with her sourdough beside it. */
.fp-place { padding:56px 0 104px; }
.fp-place-grid { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(0,.9fr); grid-template-rows:auto 1fr; gap:36px clamp(40px,5vw,72px); }
.fp-place-room { grid-row:1 / span 2; margin:0; }
.fp-place-room img { width:100%; height:100%; min-height:520px; object-fit:cover; object-position:50% 55%; }
.fp-place-copy { align-self:start; padding-top:8px; }
.fp-place .fp-heading { font-size:clamp(38px,3.9vw,58px); margin-bottom:24px; }
.fp-place .fp-body { font-size:16px; max-width:40ch; }
.fp-place .textlink { margin-top:18px; }
.fp-place-bread { align-self:end; margin:0; }
.fp-place-bread img { width:100%; aspect-ratio:1.25; object-fit:cover; object-position:50% 90%; }
.fp-place-bread figcaption { margin-top:12px; padding-top:11px; border-top:1px solid #dac5bf; font-size:11px; color:#765d54; }

/* Whoopie pies: copy first, photo second, the mirror of the cookie spread above it. */
.fp-whoopie-grid { display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); align-items:center; gap:clamp(48px,7vw,108px); }
.fp-whoopie .fp-heading { font-size:clamp(42px,4.5vw,68px); margin-bottom:28px; }
.fp-whoopie .fp-body { max-width:42ch; }
.fp-whoopie-chips { display:flex; align-items:center; gap:8px; margin:22px 0 0; font-size:12px; color:#765d54; }
.fp-whoopie-chips .chip + .chip { margin-left:10px; }
.fp-whoopie .btn { margin-top:28px; }
.fp-whoopie-photo { margin:0; }
.fp-whoopie-photo img { width:100%; aspect-ratio:1.12; object-fit:cover; object-position:50% 45%; }

/* The collections now follow the whoopie pies, so they take a full section rhythm and the blush ground. */
.fp-counter { background:#fdf5f5; padding-top:104px; }
.fp-counter .fp-collection-photo { background:#fff; }

/* The homepage visit section: the storefront (the café photo moved up to the place section). */
.fp-visit-photo img[src$="storefront-night.webp"] { aspect-ratio:1.05; object-fit:cover; object-position:50% 0%; }

@media (max-width:1100px) {
 .fp-place { padding-bottom:80px; }
 .fp-counter { padding-top:80px; }
 .fp-place-room img { min-height:440px; }
}
@media (max-width:850px) {
 .fp-place-grid { grid-template-columns:1fr 1fr; grid-template-rows:auto; }
 .fp-place-room { grid-column:1 / -1; grid-row:auto; }
 .fp-place-room img { min-height:0; height:auto; aspect-ratio:1.3; }
 .fp-place-copy { padding-top:0; }
 .fp-place-bread { align-self:start; }
 .fp-whoopie-grid { grid-template-columns:1fr; gap:36px; }
 .fp-whoopie-photo { order:-1; max-width:720px; }
}
@media (max-width:640px) {
 .fp-place { padding:32px 0 64px; }
 .fp-place-grid { grid-template-columns:1fr; gap:28px; }
 .fp-place .fp-heading { font-size:clamp(38px,10.5vw,52px); }
 .fp-place-bread img { aspect-ratio:1.3; }
 .fp-whoopie .fp-heading { font-size:clamp(40px,11vw,56px); }
 .fp-whoopie-photo img { aspect-ratio:1; }
 .fp-counter { padding-top:64px; }
}
/* The wider typeface left "it." alone on a line at 320px. */
@media (max-width:359px) { .fp-celebrations .fp-heading { font-size:35px; } .fp-signature-copy .btn { font-size:13px; gap:14px; } }


/* SOURCE: creative.css */
/* Creative refinement, October 16 2026.
   Additive to Claude's refresh. No hero, footer artwork, photo bytes or page order changes. */

/* Three intentional phrases replace the five-line Arial-era headline wrap.
   The longest phrase measures 6.87em in the bundled bold face at -.03em tracking. */
.rb-inner .ph--pies .ph__title {
  font-size:clamp(36px,4.7vw,74px);
  line-height:1.04;
  max-width:none;
  text-wrap:initial;
}
.ph--pies .creative-title-line { display:block; }

/* Preserve more of the complete pie and cooling-counter context. CSS crop only. */
@media (min-width:851px) {
  .rb-inner.fp-inner .ph--pies .ph__photo--flush img { aspect-ratio:1.18; }
  /* Keep the requested chapters while easing the long homepage's middle stretch. */
  .fp-whoopie.fp-section { padding-block:72px; }
  .fp-counter .fp-collection-photo img { aspect-ratio:1.18; }
}

/* These captions carry useful information and should remain readable on phones. */
.fp-place-bread figcaption,
.fp-signature-photo figcaption,
.fp-randell-portrait figcaption,
.fp-season-photo figcaption,
.fp-season-photo figcaption strong,
.fp-visit-photo figcaption { font-size:12px; line-height:1.6; }

@media (max-width:850px) {
  .rb-inner .ph--pies .ph__title { font-size:clamp(36px,9.4vw,68px); }
}


/* SOURCE: hero-type.css */
/* Homepage hero in Randell's typeface, October 26 2026 (Claude).
   The rest of the site switched to Century Gothic / bundled RB Gothic on Oct 16; the hero kept the
   approved Arial lettering until the apple lattice artwork arrived. approved-home.css stays locked,
   so this component only overrides the hero's type. Geometric letters run wider than Arial, so the
   headline is scaled to keep the same right edge it had in the approved layout, clear of the art. */
.rb-home .rb-hero, .rb-home .rb-hero * { font-family:var(--rb-type) !important; }

/* Desktop: same left edge, same right edge as the approved Arial headline (about 35.8% of the width). */
.rb-home .rb-title { font-size:5.83cqw; letter-spacing:-.03em; top:9.9cqw; }
.rb-home .rb-description { letter-spacing:0; }

@media (max-width:1000px) {
  /* Phone/tablet: keep the headline inside the white field, left of the barn wall. */
  .rb-home .rb-title { font-size:12.7cqw; letter-spacing:-.035em; top:12.6cqw; }
  /* The wider letters pushed the intro to five lines on 360–390px phones, touching the buttons.
     A slightly wider measure keeps it at four, still inside the white field. */
  .rb-home .rb-description { width:64cqw; }
}
@media (max-width:380px) {
  /* Same intro size the approved layout already uses below 360px. */
  .rb-home .rb-description { width:66cqw; font-size:13.5px; line-height:1.5; }
}
@media (max-width:359px) {
  .rb-home .rb-title { font-size:12.7cqw; }
}


/* SOURCE: qa-fixes.css */
/* Browser QA fixes, October 26 2026 (Claude). */

/* 320px phones: with the wider Century Gothic letters, "Directions" pushed the sticky call/directions
   bar 16px past its right edge, so the button was cut off at the screen edge. */
.stickybar { grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:360px) {
  .stickybar a { gap:8px; padding-inline:10px; font-size:1rem; }
}

/* Detail pass, October 27 2026 (Claude). */

/* Menu legend: "gluten-free" ran into the V label. Same spacing as the homepage whoopie legend. */
.ph__legend .chip + .chip { margin-left:10px; }

/* Menu allergen note: the GF V labels sat flush against "items share a kitchen". */
.label__foot .chips { margin-right:6px; }

/* Visit card: the last hours row's rule doubled up with the rule above the buttons. */
.room__card .hours li:last-child { border-bottom:0; }


/* SOURCE: content-oct26.css */
/* Content pass, October 26 2026 (Claude): Randell's 2026 Thanksgiving list and her Oct 26 photos.
   Layout only; photos are resized originals, crops are CSS object-fit. */

/* Thanksgiving: gluten-free & vegan section */
.gf-pies .framed { margin:0; }
.gf-pies .framed img { aspect-ratio:4/5; object-fit:cover; object-position:50% 45%; }
.gf-pies .framed figcaption { margin-top:12px; padding-top:11px; border-top:1px solid #dac5bf; font-size:12px; line-height:1.6; color:#765d54; }
.gf-pies .flavors { margin-bottom:0; }

/* Thanksgiving order form: second group of quantities */
.qtys__sub { margin:22px 0 8px; font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#765d54; }

/* Menu: coffee and smoothies side by side */
.drinks__photos { position:static; }
.drinks__photos img { aspect-ratio:.8; }
.mcat__photos img[src$="brunch-plate.webp"] { object-position:50% 60%; }
.mcat__photos img[src$="seasonal-smoothies.webp"] { object-position:50% 55%; }

/* Celebrate: five cakes. The lead cake spans two rows; her new rose cake joins the grid. */
@media (min-width:851px) {
  .fp-celebrate .tiles--lead.tiles--five { grid-template-columns:1.2fr 1fr 1fr; grid-template-areas:"a b c" "a d e"; }
  .fp-celebrate .tiles--five .tile:nth-child(1) { grid-area:a; }
  .fp-celebrate .tiles--five .tile:nth-child(2) { grid-area:b; }
  .fp-celebrate .tiles--five .tile:nth-child(3) { grid-area:c; }
  .fp-celebrate .tiles--five .tile:nth-child(4) { grid-area:d; }
  .fp-celebrate .tiles--five .tile:nth-child(5) { grid-area:e; }
  .fp-celebrate .tiles--five .tile:nth-child(1) a { height:100%; }
  .fp-celebrate .tiles--five .tile:nth-child(1) img { height:100%; aspect-ratio:auto; object-fit:cover; }
  .fp-celebrate .tiles--five .tile:not(:first-child) img { aspect-ratio:1.05; }
}
@media (max-width:850px) {
  /* Two columns: the fifth photo spans the row instead of sitting alone. */
  .fp-celebrate .tiles--five .tile:nth-child(5) { grid-column:1 / -1; }
  .fp-celebrate .tiles--five .tile:nth-child(5) img { aspect-ratio:1.6; }
}
.fp-celebrate .tiles--five img[src$="celebration-cake-roses.webp"] { object-position:50% 30%; }

/* Celebrate: catering and gift photos under the four offers */
.events-photos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:48px; }
.events-photos figure { margin:0; }
.events-photos a { display:block; position:relative; }
.events-photos img { display:block; width:100%; aspect-ratio:5/4; object-fit:cover; }
.events-photos figcaption { margin-top:10px; font-size:12px; line-height:1.6; color:#765d54; }
@media (max-width:640px) {
  .events-photos { grid-template-columns:1fr; gap:28px; margin-top:36px; }
}


/* SOURCE: hero-tablet.css */
/* Tablet composition, October 30, 2026.
   Keep the phone poster and full desktop art unchanged. Between 681 and 1000px,
   use the existing desktop print at its uniform viewport scale, with readable
   live type and controls. No image stretching or new photo operations. */
@media (min-width:681px) and (max-width:1000px) {
  .rb-home .rb-preview-ribbon { height:30px; gap:18px; font-size:10px; }
  .rb-home .rb-ribbon-star { font-size:16px; }
  .rb-home .rb-header { height:84px; padding-inline:5cqw; }
  .rb-home .rb-brand { width:208px; }
  .rb-home .rb-header .mnav__toggle { gap:20px; font-size:18px; }
  .rb-home .rb-menu-bars { width:25px; height:13px; border-width:2px; }
  .rb-home .rb-hero { aspect-ratio:auto; height:max(calc(47.48cqw + 80px), calc(31cqw + 203px)); }
  .rb-home .rb-hero-art { top:60px; }
  .rb-home .rb-location { left:4.91803cqw; top:26px; gap:9px; font-size:9px; letter-spacing:.1em; }
  .rb-home .rb-location-dot { width:6px; height:6px; margin-right:1px; }
  .rb-home .rb-title { left:4.91803cqw; top:calc(9.9cqw + 30px); font-size:5.83cqw; line-height:.950495; letter-spacing:-.03em; }
  .rb-home .rb-description { left:4.98108cqw; top:calc(31cqw + 25px); width:37cqw; font-size:14px; line-height:1.6; letter-spacing:0; }
  .rb-home .rb-actions { left:4.91803cqw; top:calc(31cqw + 135px); flex-direction:row; align-items:center; gap:20px; }
  .rb-home .rb-menu-button { width:184px; height:46px; padding:0 16px; font-size:12px; }
  .rb-home .rb-menu-button>span { font-size:18px; }
  .rb-home .rb-order-link { width:112px; height:44px; margin:0; padding:0 0 4px; border-bottom-width:1px; font-size:12px; gap:14px; white-space:nowrap; }
  .rb-home .rb-order-link>span { font-size:18px; }
  .rb-home .rb-hand-note { display:none; }
  .rb-home .rb-proof { display:block; height:72px; }
  .rb-home .rb-proof-inner { min-height:48px; gap:14px; font-size:9px; }
  .rb-home .rb-proof-inner>span+span { padding-left:14px; }
}

@media (min-width:681px) and (max-width:740px) {
  /* Keep the secondary arrow away from the painted edge at narrow tablets. */
  .rb-home .rb-actions { gap:12px; }
  .rb-home .rb-menu-button { width:160px; }
  .rb-home .rb-order-link { width:108px; gap:10px; }
}


/* SOURCE: finish.css */
/* Full-site visual production pass, Oct30. Original component files retained.
   Genuine food photography stays intact; paint and drawing occupy white margins. */
:root { --blush:#fff; --rb-paper:#fff; --rb-line:#ded4d0; --rule:#ded4d0; --rule-strong:#c7b6ae; --red:#c10b24; --red-deep:#9c0a1d; }
.rb-site { background:#fff; }
.rb-site .btn--red,.rb-site .rb-menu-button,.rb-site .rb-header-order { background:#c10b24; box-shadow:none; }
.rb-site .btn--red:hover,.rb-site .rb-menu-button:hover,.rb-site .rb-header-order:hover { background:#9c0a1d; }
.rb-site .btn,.rb-site .textlink { text-wrap:pretty; }
.rb-site .btn { line-height:1.4; }
.rb-site :is(.caption,.rb-editorial-label,.fp-collection-caption,.tile__tag) { border-color:var(--rule); }
.rb-site :is(.caption,.rb-editorial-label,.fp-visit-photo figcaption,.fp-randell-portrait figcaption) { font-size:12px; line-height:1.65; }
.rb-site :is(.ph__lede,.lede,.fp-body,.prose) { text-wrap:pretty; }
.rb-site :is(.band--blush,.band--espresso,.press,.ingredients,.markets,.ph,.fp-signature,.fp-counter,.fp-visit) { background:#fff; }
.rb-site :is(.band--blush,.fp-signature,.fp-counter,.fp-visit) { border-top:1px solid var(--rule); }
.rb-site .band--ruled { border-top:1px solid var(--rule); }
.rb-site :is(.fp-eyebrow,.kicker,.ph__kicker,.label__kicker) { color:#c10b24; }
.rb-site .rb-editorial-label { padding:13px 0 0; margin-top:13px; letter-spacing:.025em; }
.rb-site .rb-editorial-label span:first-child { color:#c10b24; }
.rb-site :is(.textlink,.jumps a,.footer__nav a) { text-underline-offset:4px; }
.rb-site .jumps { box-shadow:none; }
.rb-site .jumps a { min-height:44px; display:flex; align-items:center; }
.rb-site .jumps__row { padding-block:4px; }

/* Restrained print details. The pigment rail sits beside the photo, never over it. */
.fp-inner :is(.ph--menu,.ph--pies,.ph--story) .ph__photo { position:relative; padding-left:20px; }
.fp-inner :is(.ph--menu,.ph--story) .ph__photo::after { content:''; position:absolute; top:24px; bottom:60px; left:0; width:12px; background:url('img/brand/painted-siding.png') center/cover no-repeat; pointer-events:none; }
.fp-inner .ph--pies .ph__photo { padding-left:0; }
.fp-inner .ph--pies .ph__photo::after { content:''; display:block; width:74px; height:1px; background:#c10b24; margin-top:20px; }
.fp-home .fp-place { padding-top:52px; }
.fp-home .fp-place-room img { object-position:50% 52%; }
.fp-home .fp-signature-photo { padding:12px 12px 0; border:1px solid var(--rule); background:white; }
.fp-home .fp-signature-photo figcaption { margin-top:12px; padding-bottom:14px; }
.fp-home .fp-signature-copy { position:relative; }
.fp-home .fp-signature-copy .fp-signature-recognition { border-top-color:#c10b24; }
.fp-home .fp-whoopie { border-bottom:0; }
.fp-home .fp-counter-grid { gap:32px; }
.fp-home .fp-counter .fp-collection-caption { grid-template-columns:18px minmax(0,1fr) 20px; border-top:1px solid #c10b24; }
.fp-home .fp-collection-number { display:block; }
.fp-home .fp-collection-caption h3 { font-size:clamp(23px,2.1vw,30px); }
.fp-home .fp-collection-caption p { font-size:13px; }
.fp-home .fp-handwriting { position:relative; }
.fp-home .fp-handwriting-note { padding-right:72px; position:relative; }
.fp-home .fp-handwriting-note::after { content:''; position:absolute; right:8px; bottom:0; width:48px; height:112px; background:url('img/brand/botanical-print.png') center/contain no-repeat; transform:rotate(14deg); }
.fp-home .fp-season { background:#c10b24; }
.fp-home .fp-season-photo { border:1px solid #fff; }
.fp-home .fp-season .fp-heading span { color:white; }
.fp-home .fp-season-photo figcaption strong { color:#c10b24; }
.fp-home .fp-cake-gallery a>span { border-top-color:#c10b24; }
.fp-home .fp-visit-facts { border-top-color:#c10b24; }

/* Menu: an open catalogue, not boxed UI cards. Chapter numbers and prices share one rhythm. */
.fp-inner [data-menu-number] .label:not(.label--open) { border:0; border-top:2px solid #c10b24; padding:26px 0 0; }
.fp-inner [data-menu-number] .label::before { font-size:40px; margin-bottom:18px; }
.fp-inner [data-menu-number] .label__title { border-bottom:1px solid var(--rule); padding-bottom:22px; }
.fp-inner .label__foot { padding-top:18px; gap:10px 20px; }
.fp-inner .mcat__photos { gap:16px; }
.fp-inner .mcat__cap { font-size:12px; line-height:1.6; }
.fp-inner .item { padding-block:18px; }
.fp-inner .item__price { font-variant-numeric:tabular-nums; white-space:nowrap; color:#c10b24; }
.fp-inner .tile__tag { border-top-color:#c10b24; padding-top:14px; }
.fp-inner .tile__tag small { color:#60473e; }
.fp-inner .framed { padding:0; border:0; }
.fp-inner .framed figcaption { margin-top:12px; border-top-width:1px; }

/* Seasonal opening: full real photograph, then an open horizontal order docket. */
.fp-inner .ph--season .ph__grid { align-items:center; padding-bottom:44px; }
.fp-inner .ph--season .slip-wrap { padding:0; max-width:none; }
.fp-inner .ph--season .slip-photo { padding:10px; border:1px solid var(--rule); }
.fp-inner .ph--season .slip-photo img { aspect-ratio:1; object-fit:cover; }
.fp-inner .ph--season .slip { position:static; grid-column:1/-1; width:auto; max-width:none; margin:8px 0 0; padding:26px 0 0; border:0; border-top:2px solid #c10b24; box-shadow:none; transform:none; display:grid; grid-template-columns:220px minmax(0,1fr); gap:18px 40px; }
.fp-inner .ph--season .slip__head { border:0; padding:0; font-size:26px; max-width:16ch; }
.fp-inner .ph--season .slip__head span { font-size:10px; margin-bottom:12px; }
.fp-inner .ph--season .slip__rows { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px 28px; }
.fp-inner .ph--season .slip__row { display:block; padding:0; border:0; }
.fp-inner .ph--season .slip__row dt { font-size:10px; margin-bottom:7px; padding:0; }
.fp-inner .ph--season .slip__row dd { font-size:13px; line-height:1.65; }
.fp-inner .ph--season .slip__foot { grid-column:2; padding:0; font-size:12px; line-height:1.6; color:#60473e; }
.fp-inner .ph--season .hero__actions .btn--ghost { border:0; border-bottom:1px solid #3c2317; padding:10px 0; min-height:44px; }
.fp-inner .ph--season .hero__actions .btn--ghost:hover { background:transparent; color:#c10b24; border-color:#c10b24; }
.fp-inner .season__pies .pie img { border:0; }
.fp-inner .flavors { border-top:1px solid #c10b24; }
.fp-inner .flavors li { padding-block:13px; border-bottom:1px solid var(--rule); }
.fp-inner .steps { border-top-width:1px; }
.fp-inner .step::before { color:#c10b24; font-size:44px; }

/* Celebration: keep the editorial cake photographs and make the inquiry feel like a printed brief. */
.fp-celebrate .ph--cake .ph__grid { padding-bottom:68px; }
.fp-celebrate .pinned::before { display:none; }
.fp-celebrate .pinned figure { padding:0; }
.fp-celebrate .pinned figcaption { border-top:1px solid #c10b24; margin-top:14px; padding-top:12px; }
.fp-inner .offers { gap:36px; }
.fp-inner .offer { border-top:1px solid #c10b24; padding-top:22px; }
.fp-inner .offer>.ic { color:#c10b24; width:26px; height:26px; margin-bottom:10px; }
.fp-inner .events-photos { gap:28px; }
.fp-inner .events-photos figcaption { color:#60473e; }
.fp-inner .form { background:white; border:1px solid var(--rule); border-top:2px solid #c10b24; padding:34px; box-shadow:none; }
.fp-inner .field input,.fp-inner .field select,.fp-inner .field textarea { background:#fff; border-color:#c7b6ae; }
.fp-inner .field input:focus,.fp-inner .field select:focus,.fp-inner .field textarea:focus { border-color:#c10b24; outline:1px solid #c10b24; outline-offset:0; }
.fp-inner .form__foot { border-top:1px solid var(--rule); padding-top:24px; }
.fp-inner .form__foot .btn { min-height:52px; }
.fp-inner .qty { padding-block:12px; gap:16px; }
.fp-inner .qty label { font-size:13px; line-height:1.5; }
.fp-inner .qty input { width:58px; }
.fp-inner .rb-preview-form-note { color:#60473e; line-height:1.7; }

/* Story: the documentary photos and Randell's actual handwritten cards are the artwork. */
.fp-inner .ph--story .ph__photo img { object-position:50% 12%; }
.fp-inner .ph--story .quote { max-width:39ch; }
.fp-inner .maker__photo { padding:10px 10px 0; border:1px solid var(--rule); }
.fp-inner .hand .caption { border-top:1px solid #c10b24; }
.fp-inner .timeline::before { background:var(--rule); }
.fp-inner .tl__when { color:#c10b24; letter-spacing:.07em; }
.fp-inner .tl__what strong { font-size:21px; }
.fp-inner .panel__title { border-bottom-color:#c10b24; }
.fp-inner .press__clip img { box-shadow:none; }
.fp-inner .mk__row { padding-block:17px; border-color:var(--rule); }
.fp-inner .mk__name { color:#3c2317; }

/* Visit: useful arrival information beside the actual storefront, then the café interior. */
.fp-inner .ph--visit>.wrap { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:30px 72px; align-items:start; padding-top:68px; padding-bottom:72px; }
.fp-inner .ph--visit .ph__copy--center { text-align:left; align-items:flex-start; width:auto; padding:0; margin:0; }
.fp-inner .ph--visit .ph__kicker { justify-content:flex-start; }
.fp-inner .ph--visit .ph__title { font-size:clamp(48px,5.2vw,78px); max-width:12ch; }
.fp-inner .ph--visit .ph__lede { font-size:16px; max-width:43ch; }
.fp-inner .ph--visit .ph__lede::before { margin-left:0; }
.fp-inner .ph--visit .room { display:contents; }
.fp-inner .ph--visit .room__img { grid-column:2; grid-row:1/span 2; padding:0; border:0; width:100%; height:100%; max-height:850px; min-height:620px; aspect-ratio:auto; object-fit:cover; object-position:50% 35%; }
.fp-inner .ph--visit .room__card { grid-column:1; grid-row:2; margin:0; padding:26px 0 0; border:0; border-top:1px solid #c10b24; box-shadow:none; }
.fp-inner .ph--visit .room__facts { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.fp-inner .ph--visit .room__facts dd,.fp-inner .ph--visit .hours li { font-size:14px; }
.fp-inner .ph--visit .room__facts dd span { margin-top:6px; font-size:12px; line-height:1.7; }
.fp-inner .ph--visit .hours li { gap:12px; padding-block:5px; }
.fp-inner .ph--visit .room__actions { margin-top:24px; padding-top:22px; }
.fp-inner .faq summary { padding:24px 36px 24px 0; font-size:18px; line-height:1.5; }
.fp-inner .faq details>p { max-width:64ch; padding-right:32px; }

/* A deliberate close: one approved barn drawing, clear navigation, readable details. */
.rb-site .closer { border-top:1px solid var(--rule); }
.rb-site .closer__row { gap:32px 60px; }
.rb-site .closer__title { max-width:18ch; line-height:1.08; }
.rb-site .rb-footer-vignette { padding-top:28px; }
.rb-site .footer__grid { border-top:1px solid #c10b24; padding-block:44px 48px; }
.rb-site .footer__head { letter-spacing:.1em; }
.rb-site .footer__nav a { padding-block:6px; }
.rb-site .footer__line { max-width:28ch; }
.rb-site .footer__base { font-size:12px; }

@media(min-width:1001px) and (max-width:1180px) {
 .rb-site .rb-header { height:78px; }
 .rb-site .rb-brand { width:208px; }
}
@media(min-width:641px) and (max-width:1000px) {
 .rb-site:not(.rb-home) .rb-preview-ribbon { height:30px; font-size:10px; gap:18px; }
 .rb-site:not(.rb-home) .rb-header { height:84px; padding-inline:5cqw; }
 .rb-site:not(.rb-home) .rb-brand { width:208px; }
 .rb-site:not(.rb-home) .rb-header .mnav__toggle { font-size:18px; gap:20px; }
 .rb-site:not(.rb-home) .rb-menu-bars { width:25px; height:13px; border-width:2px; }
}
@media(max-width:1100px) {
 .fp-home .fp-counter-grid { gap:22px; }
 .fp-inner .ph--visit>.wrap { gap:28px 40px; }
 .fp-inner .ph--visit .room__facts { grid-template-columns:1fr; gap:20px; }
 .fp-inner .ph--season .slip { grid-template-columns:180px minmax(0,1fr); gap:20px 32px; }
}
@media(max-width:1020px) {
 .fp-inner .ph--season .ph__grid { grid-template-columns:1fr 1fr; gap:32px; }
 .fp-inner .ph--season .ph__title { font-size:clamp(42px,6.3vw,64px); }
 .fp-inner .ph--season .ph__lede { font-size:16px; }
 .fp-inner .ph--season .slip { grid-template-columns:1fr; }
 .fp-inner .ph--season .slip__head { max-width:none; }
 .fp-inner .ph--season .slip__foot { grid-column:1; }
 .fp-inner .ph--visit .ph__title { font-size:clamp(46px,5.4vw,64px); }
 .fp-inner .ph--visit .room__img { min-height:720px; }
 .fp-inner .offers { gap:24px; }
}
@media(max-width:850px) {
 .fp-inner .ph--visit>.wrap { grid-template-columns:1fr 1fr; gap:28px; padding-block:48px; }
 .fp-inner .ph--visit .room__img { min-height:750px; }
 .fp-inner .ph--visit .room__actions .btn { width:100%; }
 .fp-inner .ph--season .ph__grid { align-items:start; }
 .fp-inner .ph--season .hero__actions { flex-direction:column; align-items:flex-start; }
 .fp-inner .ph--season .hero__actions .btn { width:auto; }
}
@media(max-width:640px) {
 .rb-site .band,.rb-site .press,.rb-site .ingredients,.rb-site .markets { padding-block:56px; }
 .rb-site .h2 { font-size:clamp(34px,10vw,42px); line-height:1.05; }
 .rb-site .fp-section { padding-block:56px; }
 .fp-home .fp-place { padding-top:28px; padding-bottom:56px; }
 .fp-home .fp-place-grid { gap:24px; }
 .fp-home .fp-signature-photo { padding:8px 8px 0; }
 .fp-home .fp-signature-photo figcaption { flex-direction:column; gap:3px; padding-bottom:10px; }
 .fp-home .fp-counter-grid { gap:28px 18px; }
 .fp-home .fp-counter .fp-collection-caption { grid-template-columns:minmax(0,1fr) 18px; }
 .fp-home .fp-collection-number { display:none; }
 .fp-home .fp-collection-caption h3 { font-size:23px; line-height:1.1; }
 .fp-home .fp-collection-caption p { font-size:12px; }
 .fp-home .fp-handwriting-note { padding-right:58px; }
 .fp-home .fp-handwriting-note::after { width:34px; height:82px; right:2px; }
 .fp-home .fp-handwriting-note p { font-size:30px; }
 .fp-home .fp-visit-facts { grid-template-columns:1fr 1fr; gap:20px; }
 .fp-home .fp-visit-facts dd { font-size:13px; }
 .fp-inner .ph__grid { padding-top:36px; padding-bottom:44px; }
 .fp-inner :is(.ph--menu,.ph--story) .ph__photo { padding-left:14px; }
 .fp-inner :is(.ph--menu,.ph--story) .ph__photo::after { width:7px; top:18px; bottom:56px; }
 .fp-inner .ph__title { font-size:clamp(39px,11vw,54px); }
 .fp-inner .ph--season .ph__grid { grid-template-columns:1fr; gap:28px; padding-top:36px; padding-bottom:40px; }
 .fp-inner .ph--season .ph__title { font-size:clamp(39px,11vw,54px); }
 .fp-inner .ph--season .ph__lede { font-size:15px; line-height:1.65; margin-top:22px; }
 .fp-inner .ph--season .hero__actions { flex-direction:row; flex-wrap:wrap; gap:12px 18px; margin-top:24px; }
 .fp-inner .ph--season .hero__actions .btn--white { flex:0 1 auto; width:auto; padding-inline:20px; }
 .fp-inner .ph--season .hero__actions .btn--ghost { font-size:12px; min-height:44px; }
 .fp-inner .ph--season .slip { grid-column:auto; margin:0; padding-top:22px; gap:20px; }
 .fp-inner .ph--season .slip__head { font-size:24px; }
 .fp-inner .ph--season .slip__rows { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
 .fp-inner .ph--season .slip__row dd { font-size:12px; }
 .fp-inner .ph--season .slip-photo { padding:7px; }
 .fp-inner .ph--season .slip-photo img { aspect-ratio:1.15; }
 .fp-inner [data-menu-number] .label::before { font-size:34px; margin-bottom:14px; }
 .fp-inner [data-menu-number] .label:not(.label--open) { padding-top:22px; }
 .fp-inner .form { padding:24px 18px; }
 .fp-inner .form__grid { gap:20px; }
 .fp-inner .qtys__grid { grid-template-columns:1fr; }
 .fp-inner .qty label { font-size:14px; }
 .fp-inner .form__foot .btn { width:100%; justify-content:center; }
 .fp-inner .events-photos { gap:24px; }
 .fp-celebrate .ph--cake .ph__grid { padding-bottom:44px; }
 .fp-inner .ph--visit>.wrap { display:flex; flex-direction:column; gap:28px; padding-block:36px 44px; }
 .fp-inner .ph--visit .ph__title { font-size:clamp(40px,11vw,58px); }
 .fp-inner .ph--visit .ph__lede { font-size:15px; line-height:1.65; margin-top:22px; }
 .fp-inner .ph--visit .room__card { order:1; width:100%; padding-top:22px; }
 .fp-inner .ph--visit .room__img { order:2; height:auto; min-height:0; max-height:none; aspect-ratio:.9; object-position:50% 32%; }
 .fp-inner .ph--visit .room__facts { grid-template-columns:1fr 1fr; gap:20px; }
 .fp-inner .ph--visit .room__facts dd,.fp-inner .ph--visit .hours li { font-size:12px; }
 .fp-inner .ph--visit .room__facts dd span { font-size:11px; }
 .fp-inner .ph--visit .hours li { gap:8px; }
 .fp-inner .ph--visit .room__actions { gap:16px; }
 .fp-inner .ph--visit .room__actions .btn { width:auto; flex:1 1 auto; min-width:150px; padding-inline:14px; }
 .fp-inner .ph--visit .room__actions .textlink { font-size:12px; }
 .rb-site .closer { padding-block:48px; }
 .rb-site .closer__row { gap:26px; }
 .rb-site .closer__title { font-size:34px; }
 .rb-site .footer__grid { padding-block:32px; gap:32px 24px; }
 .rb-site .footer__nav a { padding-block:8px; }
 .rb-site .footer__base { gap:12px; }
}
@media(max-width:359px) {
 .fp-home .fp-visit-facts { grid-template-columns:1fr; }
 .fp-home .fp-collection-caption h3 { font-size:21px; }
 .fp-inner .ph--visit .room__facts { grid-template-columns:1fr; }
 .fp-inner .ph--season .hero__actions { flex-direction:column; align-items:stretch; }
 .fp-inner .ph--season .hero__actions .btn--white { width:100%; }
}

/* Size the visit print from the live text/card, without intrinsic photo height stretching rows. */
@media(min-width:641px) {
 .fp-inner .ph--visit .room__photo { grid-column:2; grid-row:1/span 2; position:relative; min-height:620px; width:100%; margin:0; }
 .fp-inner .ph--visit .room__photo .room__img { position:absolute; inset:0; height:100%; min-height:0; max-height:none; width:100%; }
}
@media(max-width:640px) {
 .fp-inner .ph--visit .room__photo { position:relative; order:2; width:100%; aspect-ratio:.9; margin:0; }
 .fp-inner .ph--visit .room__photo .room__img { position:absolute; inset:0; height:100%; min-height:0; width:100%; }
}

@media(min-width:360px) and (max-width:640px) {
 .fp-inner .ph--visit .room__facts dd,.fp-inner .ph--visit .hours li { font-size:13px; }
}
@media(max-width:359px) {
 .fp-inner .ph--visit .room__facts dd,.fp-inner .ph--visit .hours li { font-size:14px; }
}
/* Expose the section strip's scroll affordance, retaining its native keyboard/touch behavior. */
.rb-site .jumps__row { scrollbar-width:thin; scrollbar-color:#c10b24 #eee7e4; }
.rb-site .jumps__row::-webkit-scrollbar { display:block; height:3px; }
.rb-site .jumps__row::-webkit-scrollbar-track { background:#eee7e4; }
.rb-site .jumps__row::-webkit-scrollbar-thumb { background:#c10b24; }
/* Keep the storefront name in the crop and prevent address-note styles shrinking hours. */
.fp-inner .ph--visit .room__photo .room__img { object-position:50% 0%; }
.fp-inner .ph--visit .room__facts dd>span { margin-top:6px; font-size:12px; line-height:1.7; }
.fp-inner .ph--visit .hours li span { margin:0; font-size:inherit; line-height:1.6; }
.fp-inner .ph--visit .hours li span:last-child { font-weight:700; }
/* Let the seasonal lattice print keep its full photographic width. */
.fp-inner .season__pies { grid-template-columns:1.6fr 1fr; grid-template-rows:auto auto; gap:14px; }
.fp-inner .season__pies .pie--a img { object-position:50% 50%; }
@media(min-width:1101px) {
 .fp-inner:not(.fp-celebrate) .tiles--lead { grid-template-columns:2fr 1fr 1fr; }
}

/* The cake stays beside the inquiry on desktop, after the fields on phones. */
@media(min-width:851px) {
 .fp-celebrate #inquiry .split { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); grid-template-rows:auto 1fr; gap:36px 64px; align-items:start; }
 .fp-celebrate #inquiry .split>div { grid-column:1; grid-row:1; }
 .fp-celebrate #inquiry .form { grid-column:2; grid-row:1/span 2; }
 .fp-celebrate #inquiry .inquiry-photo { grid-column:1; grid-row:2; margin:0; }
}
@media(max-width:850px) {
 .fp-celebrate #inquiry .split { display:flex; flex-direction:column; align-items:stretch; gap:32px; }
 .fp-celebrate #inquiry .inquiry-photo { margin:0; max-width:620px; }
}
@media(max-width:640px) {
 .fp-inner .choice__row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
 .fp-inner .choice__row label { min-width:0; }
 .fp-inner .choice__row span { display:flex; align-items:center; justify-content:center; width:100%; height:100%; min-height:48px; padding:12px 8px; text-align:center; font-size:12px; line-height:1.4; }
 .fp-inner .choice__row:not([data-preselect]) label:last-child { grid-column:1/-1; }
}
.fp-inner .season__copy .flavors { margin-bottom:0; }
.fp-inner .ph--season .slip-wrap { align-self:center; }
@media(max-width:640px) { .fp-inner .season__grid { gap:32px; } }
/* Whole cake prints replace the narrow strip crop; all four genuine photographs remain visible. */
.fp-inner .cakes__photos { grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto; height:auto; gap:14px; }
.fp-inner .cakes__photos .cakes__big { grid-row:auto; }
.fp-inner .cakes__photos figure:nth-child(2) { grid-column:auto; }
.fp-inner .cakes__photos figure:nth-child(4) { display:block; }
.fp-inner .cakes__photos img { width:100%; height:auto; aspect-ratio:.95; object-fit:cover; }

/* Claude review repairs, Oct30. No original component or preview guard changed. */
.rb-site .rb-header-order { white-space:nowrap; min-width:140px; gap:12px; }
.rb-site .rb-header-order>span { flex:none; }
.fp-home .fp-season :focus-visible { outline:3px solid #fff; outline-offset:5px; }
.fp-inner #more .tiles--3 .tile:nth-child(even) { padding-top:0; }
@media(max-width:680px) {
 .fp-celebrate #inquiry .inquiry-photo { width:min(100%,240px); align-self:center; }
 .fp-celebrate #inquiry .inquiry-photo img { width:100%; height:auto; }
 /* The native focus scroll reserves the fixed bar plus its gap and a 16px buffer.
    Both viewport scroll padding and element scroll margin cover engine differences. */
 html { scroll-padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
 .rb-site form :is(input,select,textarea,button,[data-preview-message]) { scroll-margin-bottom:calc(100px + env(safe-area-inset-bottom)); scroll-margin-top:24px; }
 .rb-site [data-preview-message] { margin-top:24px; }
}

.fp-home .rb-time { white-space:nowrap; }


/* SOURCE: hero-finish.css */
/* November 3: original tart composition, genuine apple lattice.
   Flowing copy prevents breakpoint-dependent paragraph/button collisions.
   approved-home.css remains unchanged. */
.rb-home .rb-hero { height:auto; min-height:49.2434cqw; aspect-ratio:auto; }
.rb-home .rb-hero-art img { aspect-ratio:1586/781; }
.rb-home .rb-hero-copy { position:relative; z-index:2; width:34.5cqw; margin-left:4.91803cqw; padding-top:5.64313cqw; padding-bottom:40px; }
.rb-home .rb-location,.rb-home .rb-title,.rb-home .rb-accent-rule,.rb-home .rb-description,.rb-home .rb-actions { position:static; inset:auto; }
.rb-home .rb-location { font-size:max(10px,.81967cqw); gap:.94578cqw; }
.rb-home .rb-title { font-size:5.83cqw; line-height:.950495; letter-spacing:-.03em; margin:2.65cqw 0 2.8cqw; }
.rb-home .rb-accent-rule { display:block; margin:0 0 1.2cqw .31526cqw; width:2.20681cqw; height:2px; }
.rb-home .rb-description { width:100%; font-size:clamp(14px,1.13493cqw,18px); line-height:1.6; letter-spacing:0; }
.rb-home .rb-actions { margin-top:28px; flex-direction:row; gap:1.89155cqw; align-items:center; }
.rb-home .rb-menu-button { width:max(14.18663cqw,172px); height:max(44px,3.97226cqw); }
.rb-home .rb-order-link { width:auto; min-width:110px; height:44px; padding:0 0 4px; margin:0; gap:22px; font-size:max(12px,.88272cqw); }
.rb-home .rb-order-link::before { top:0; bottom:0; }
.rb-home .rb-hand-note { left:45cqw; top:13cqw; font-size:1.3cqw; line-height:1.35; letter-spacing:0; }
.rb-home .rb-proof { border-top:0; height:auto; padding-bottom:clamp(32px,4cqw,64px); color:#6b4b40; }
.rb-home .rb-proof-inner { min-height:52px; font-size:clamp(11px,.7566cqw,13px); border-bottom:1px solid #deccc7; }
.rb-site .rb-header-order { white-space:nowrap; min-width:140px; gap:12px; }
.rb-site .rb-header-order>span { flex:none; }
@media(min-width:681px) and (max-width:1000px){
 .rb-home .rb-hero { min-height:calc(49.2434cqw + 48px); }
 .rb-home .rb-hero-art { top:48px; }
 .rb-home .rb-hero-copy { width:36cqw; padding-top:24px; }
 .rb-home .rb-location { font-size:9px; }
 .rb-home .rb-title { font-size:5.83cqw; margin-top:58px; margin-bottom:24px; }
 .rb-home .rb-description { font-size:14px; line-height:1.6; }
 .rb-home .rb-actions { flex-direction:column; align-items:flex-start; gap:8px; margin-top:22px; }
 .rb-home .rb-menu-button { width:176px; height:46px; padding-inline:16px; font-size:12px; }
 .rb-home .rb-order-link { min-width:138px; width:138px; height:44px; font-size:12px; }
 .rb-home .rb-hand-note { display:none; }
 .rb-home .rb-proof { padding-bottom:40px; }
 .rb-home .rb-proof-inner { font-size:10px; }
}
@media(max-width:680px){
 .rb-home .rb-hero { display:flex; flex-direction:column; min-height:0; height:auto; }
 .rb-home .rb-hero-copy { order:1; width:auto; margin:0; padding:22px 5.5cqw 0; }
 .rb-home .rb-hero-art { order:2; position:relative; inset:auto; z-index:0; width:100%; margin-top:12px; }
 .rb-home .rb-hero-art img { aspect-ratio:853/1060; }
 .rb-home .rb-location { width:100%; font-size:clamp(7.5px,2.13cqw,11px); line-height:1.5; gap:7px; letter-spacing:.08em; white-space:nowrap; }
 .rb-home .rb-location-dot { width:5px; height:5px; margin:0; }
 .rb-home .rb-title { font-size:12.7cqw; line-height:.9625; letter-spacing:-.035em; margin:24px 0 22px; }
 .rb-home .rb-accent-rule { display:none; }
 .rb-home .rb-description { width:100%; max-width:36ch; font-size:clamp(14px,3.85cqw,18px); line-height:1.55; }
 .rb-home .rb-actions { display:grid; grid-template-columns:minmax(0,1fr) 110px; align-items:center; gap:16px; width:100%; max-width:370px; margin-top:24px; }
 .rb-home .rb-menu-button { width:100%; min-width:0; height:48px; padding:0 12px; font-size:clamp(12px,3.3cqw,14px); }
 .rb-home .rb-order-link { width:110px; min-width:0; height:44px; padding:0 0 4px; margin:0; gap:10px; font-size:12px; }
 .rb-home .rb-hand-note { display:none; }
 .rb-home .rb-proof { display:none; }
}


/* SOURCE: assortment-hero.css */
/* Genuine apple lattice in the original illustrated barn composition.
   The mobile scene continues alongside the live copy, as in the tart hero. */
.rb-home .rb-hand-note { left:39.7869cqw; top:9.5cqw; font-size:clamp(12px,1.15cqw,18px); }
/* Final readability adjustments remain scoped to this homepage. */
@media(min-width:1181px){
 .rb-home .rb-navigation a,.rb-home .rb-header-order { font-size:clamp(12px,.86cqw,14px); }
 .rb-home .rb-navigation a { display:flex; align-items:center; min-height:44px; }
}
@media(max-width:680px){
 .rb-home .rb-hero { display:block; height:auto; min-height:191.2075cqw; aspect-ratio:853/1631; }
 .rb-home .rb-hero-art { position:absolute; inset:0 0 auto; width:100%; margin:0; z-index:-1; }
 .rb-home .rb-hero-art img { aspect-ratio:853/1631; }
 .rb-home .rb-hero-copy { position:relative; width:69cqw; margin:0; padding:5.4cqw 0 0 5.4cqw; }
 .rb-home .rb-location { width:90cqw; font-size:clamp(8px,2.05cqw,11px); gap:1.65cqw; }
 .rb-home .rb-title { font-size:12.7cqw; margin:5.7cqw 0 6.8cqw; }
 .rb-home .rb-description { width:63cqw; max-width:none; font-size:clamp(13.5px,3.5cqw,18px); line-height:1.55; }
 .rb-home .rb-actions { display:flex; flex-direction:column; align-items:flex-start; width:64cqw; max-width:none; margin-top:max(24px,6.5cqw); gap:2.3cqw; }
 .rb-home .rb-menu-button { width:53cqw; min-height:44px; height:12.66cqw; padding:0 4.1cqw; font-size:clamp(12px,3.3cqw,16px); }
 .rb-home .rb-order-link { width:42cqw; min-height:44px; height:8.5cqw; margin:0; padding:0 2cqw 1.4cqw; font-size:clamp(12px,3.2cqw,15px); }
}
@media(max-width:359px){
 .rb-home .rb-hero { aspect-ratio:auto; min-height:calc(191.2075cqw + 50px); }
 .rb-home .rb-hero-art { top:50px; }
 .rb-home .rb-hero-copy { width:72cqw; }
 .rb-home .rb-description { width:65cqw; font-size:13.5px; line-height:1.5; }
 .rb-home .rb-location { flex-wrap:nowrap; white-space:nowrap; font-size:8px; }
}


/* SOURCE: editorial-finish.css */
/* November 4: photography-led editorial finish. The approved homepage hero,
   all food image files, form guards and original JavaScript remain untouched. */
.rb-site { --rb-print-rule:#e1d4d0; --rb-soft-rose:#fff7f8; }
.rb-site .rb-photo-caption { display:flex; justify-content:space-between; gap:12px; margin:14px 0 0; padding:12px 0 0; border-top:1px solid #c10b24; color:#60473e; font-size:12px; line-height:1.6; }
.rb-site .rb-photo-caption strong { color:#3c2317; font-weight:700; }
.rb-site .rb-margin-sketch { width:190px; height:58px; margin-top:32px; background:url('img/brand/barn-complete.png') left center/contain no-repeat; pointer-events:none; }
.rb-site .rb-portfolio-label { display:flex; align-items:center; gap:12px; color:#c10b24; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; margin-bottom:16px; }
.rb-site .rb-portfolio-label::before { content:''; width:24px; height:1px; background:currentColor; flex:none; }
.rb-site .rb-photo-caption span { text-align:right; }
.rb-site:not(.rb-home) .rb-navigation a { min-height:44px; display:flex; align-items:center; font-size:clamp(12px,.86cqw,14px); }
.rb-site:not(.rb-home) .rb-header-order { font-size:clamp(12px,.86cqw,14px); }

/* Painted pigment is a separate margin alongside honest, rectangular prints. */
.fp-inner .ph__photo[data-rb-print] { padding-left:36px; align-self:center; }
.fp-inner .ph__photo[data-rb-print]::before { display:block; content:''; position:absolute; left:0; top:24px; bottom:64px; width:24px; background:url('img/brand/painted-siding.png') center/100% 100% no-repeat; z-index:0; pointer-events:none; }
.fp-inner .ph__photo[data-rb-print]::after { display:none; }
.fp-inner .ph__photo[data-rb-print] img { display:block; width:100%; height:auto; }
.fp-inner .ph__photo[data-rb-print] .rb-editorial-label { margin-top:16px; }
.fp-inner .ph__copy .hero__actions { gap:16px; }
.fp-inner .ph__copy .btn--white { background:#c10b24; border-color:#c10b24; color:#fff; }
.fp-inner .ph__copy .btn--ghost { color:#3c2317; border-color:#3c2317; background:#fff; }
.fp-inner .ph__copy .btn--white:hover { background:#9c0a1d; border-color:#9c0a1d; }
.fp-inner .ph__copy .btn--ghost:hover { background:#3c2317; color:#fff; }

/* Home: recognizable photographic chapters, with quieter printed margins. */
.fp-home .fp-place { padding-top:64px; }
.fp-home .fp-place-room { position:relative; padding:0 0 24px 24px; }
.fp-home .fp-place-room::before { content:''; position:absolute; left:0; top:22px; bottom:0; width:12px; background:url('img/brand/painted-siding.png') center/100% 100% no-repeat; }
.fp-home .fp-signature { padding-block:96px; border-top:1px solid var(--rb-print-rule); border-bottom:1px solid var(--rb-print-rule); }
.fp-home .fp-signature-photo { border:0; padding:0 0 0 28px; position:relative; }
.fp-home .fp-signature-photo::before { content:''; position:absolute; top:24px; bottom:72px; left:0; width:16px; background:url('img/brand/painted-siding.png') center/100% 100% no-repeat; }
.fp-home .fp-signature-photo figcaption { padding-bottom:0; }
.fp-home .fp-signature-copy { padding-top:12px; }
.fp-home .fp-signature-recognition { display:flex; align-items:baseline; justify-content:space-between; }
.fp-home .fp-signature-recognition strong { margin-left:12px; font-size:32px; }
.fp-home .fp-whoopie { padding-block:88px; }
.fp-home .fp-whoopie-photo { padding-right:24px; border-right:2px solid #c10b24; }
.fp-home .fp-counter { border-top:1px solid var(--rb-print-rule); padding-block:88px; }
.fp-home .fp-counter .fp-collection-caption { padding-top:18px; }
.fp-home .fp-counter .fp-collection-number { font-size:13px; }
.fp-home .fp-randell { padding-block:96px; }
.fp-home .fp-handwriting { padding-top:40px; gap:32px; }
.fp-home .fp-handwriting img { border:1px solid var(--rb-print-rule); }
.fp-home .fp-cake-gallery { gap:28px; }
.fp-home .fp-cake-gallery a>span { min-height:54px; align-items:flex-start; }
.fp-home .fp-visit { padding-block:88px; border-top:1px solid var(--rb-print-rule); }
.fp-home .fp-visit-photo { padding-left:24px; border-left:2px solid #c10b24; }

/* Menu: seven readable chapters. Product photographs retain their own settings. */
.rb-menu .ph--menu .ph__grid { gap:64px; align-items:center; }
.rb-menu .ph--menu .index { margin-top:32px; }
.rb-menu .ph--menu .ph__photo img { aspect-ratio:.86; object-position:50% 50%; }
.rb-menu [data-menu-number] { padding-block:88px; }
.rb-menu [data-menu-number] .label { padding:0; border:0; }
.rb-menu [data-menu-number] .label::before { display:inline-block; font-size:16px; font-weight:700; letter-spacing:.05em; margin:0 0 24px; padding:0 0 12px; border-bottom:2px solid #c10b24; min-width:44px; }
.rb-menu [data-menu-number] .label__title { padding-bottom:24px; margin-bottom:8px; }
.rb-menu .mcat__photos { gap:18px; }
.rb-menu .mcat__photos--two figure:not(:first-child) { margin-top:0; }
.rb-menu .mcat__photos--two figure:first-child img { aspect-ratio:1.2; }
.rb-menu .mcat__photos--two figure:not(:first-child) img { aspect-ratio:.94; }
.rb-menu #cookies .mcat__photos--two figure:first-child img { aspect-ratio:.95; object-position:50% 35%; }
.rb-menu #savory .mcat__photos--two figure:first-child img { aspect-ratio:1.1; object-position:50% 60%; }
.rb-menu #breakfast-cookies .mcat__photos,.rb-menu #gifts .mcat__photos { padding-left:24px; border-left:2px solid #c10b24; }
.rb-menu #scones .mcat__photos { max-width:460px; }
.rb-menu #sweets .interlude { margin-bottom:48px; }
.rb-menu #sweets .interlude img { aspect-ratio:2.6; object-position:50% 46%; }
.rb-menu #sweets .label--wide { border-top:2px solid #c10b24; padding-top:28px; }
.rb-menu #drinks { background:#3c2317; color:#fff; border:0; }
.rb-menu #drinks .h2,.rb-menu #drinks .prose { color:#fff; }
.rb-menu #drinks .rb-photo-caption { color:#fff; border-color:#ffffff50; }
.rb-menu #drinks .rb-photo-caption strong { color:#fff; }
.rb-menu #drinks .drinks__photos { padding:0 0 24px; border-bottom:1px solid #ffffff65; }
.rb-menu #drinks .drinks__copy { padding-block:24px; }
.rb-menu #drinks .drinks__copy::before { content:''; display:block; width:34px; height:2px; margin-bottom:28px; background:#fff; }
.rb-menu #gifts .label__foot { border-top:1px solid var(--rb-print-rule); margin-top:24px; }
.rb-menu .item { padding-block:17px; }
.rb-menu .item__name { line-height:1.45; }
.rb-menu .item__desc { max-width:49ch; }

/* Whole pies: an open photographic catalogue, full pies and aligned captions. */
.rb-pies .ph--pies .ph__grid { align-items:center; }
.rb-pies .ph--pies .ph__photo img { aspect-ratio:1.12; object-position:50% 50%; }
.rb-pies #pies,.rb-pies #in-season { padding-block:88px; }
.rb-site.rb-pies .tiles--lead { grid-template-columns:repeat(4,minmax(0,1fr)); grid-template-areas:none; gap:24px; align-items:start; }
.rb-pies .tiles--lead .tile:nth-child(n) { grid-area:auto; display:block; padding:0; }
.rb-pies .tiles--lead .tile:nth-child(n) img { width:100%; height:auto; min-height:0; aspect-ratio:.96; object-fit:cover; flex:none; }
.rb-pies .tiles--lead .tile__tag { font-size:16px; line-height:1.45; }
.rb-pies #in-season { border-block:1px solid var(--rb-print-rule); }
.rb-pies .namelist { justify-content:flex-start; gap:12px 26px; margin-top:32px; }
.rb-pies .namelist li { font-size:13px; line-height:1.6; }
.rb-pies #cakes .split { align-items:center; }
.rb-pies #cakes .cakes__photos { gap:18px; padding-left:24px; border-left:2px solid #c10b24; }
.rb-pies #cakes .cakes__photos img { aspect-ratio:1; object-position:50% 40%; }
.rb-pies #more .tiles { align-items:start; }
.rb-pies #more .tile:nth-child(n) { padding-top:0; }
.rb-pies #more .tile img { width:100%; height:auto; aspect-ratio:1.08; object-fit:cover; }
.rb-pies #how { border-top:2px solid #c10b24; }

/* Seasonal: the real pie tray and a printed pickup docket, never simulated food. */
.rb-seasonal .ph--season .slip-photo { border:0; padding:0 0 0 28px; position:relative; }
.rb-seasonal .ph--season .slip-photo::before { content:''; position:absolute; left:0; top:24px; bottom:24px; width:16px; background:url('img/brand/painted-siding.png') center/100% 100% no-repeat; }
.rb-seasonal .ph--season .slip-photo img { aspect-ratio:1; }
.rb-seasonal .ph--season .slip { padding-block:28px 8px; }
.rb-seasonal .ph--season .slip__head { font-size:28px; }
.rb-seasonal .season__pies { gap:18px; padding-bottom:22px; border-bottom:1px solid #c10b24; }
.rb-seasonal .season__pies .pie img { width:100%; height:100%; object-fit:cover; }
.rb-seasonal .gf-pies { border-top:1px solid var(--rb-print-rule); }
.rb-seasonal .gf-pies .framed { padding-left:24px; border-left:2px solid #c10b24; }
.rb-seasonal #how { border-top:2px solid #c10b24; }
.rb-seasonal #preorder { background:linear-gradient(90deg,#fff 0 50%,#fff7f8 50%); }
.rb-seasonal #preorder .form { border-top-width:4px; }
.rb-seasonal .seasons { border-top:1px solid var(--rb-print-rule); }
.rb-seasonal .seasons .tiles img { aspect-ratio:1.08; }

/* Celebration: a photographic portfolio with descriptive, editable captions. */
.fp-celebrate .ph--cake .ph__grid { padding-top:60px; padding-bottom:72px; gap:42px; }
.fp-celebrate .pinned { gap:26px; }
.fp-celebrate .pinned figcaption { margin-top:16px; padding-top:12px; font-size:12px; line-height:1.6; }
.fp-celebrate .pinned__a { padding-left:22px!important; border-left:2px solid #c10b24; }
.fp-celebrate .tiles--lead.tiles--five { grid-template-columns:repeat(6,minmax(0,1fr)); grid-template-areas:none; align-items:start; gap:30px 24px; }
.fp-celebrate .tiles--five .tile:nth-child(n) { grid-area:auto; grid-column:span 2; padding:0; }
.fp-celebrate .tiles--five .tile:nth-child(-n+2) { grid-column:span 3; }
.fp-celebrate .tiles--five .tile:nth-child(n) a { height:auto; }
.fp-celebrate .tiles--five .tile:nth-child(n) img { width:100%; height:auto; min-height:0; aspect-ratio:1.16; object-fit:cover; }
.fp-celebrate .tiles--five .tile:nth-child(n+3) img { aspect-ratio:1; }
.fp-celebrate #events { border-top:2px solid #c10b24; }
.fp-celebrate #events .events-photos { margin:0 0 44px; gap:28px; }
.fp-celebrate #events .events-photos img { aspect-ratio:1.3; object-position:50% 45%; }
.fp-celebrate #events .offer { padding-top:20px; }
.fp-celebrate #inquiry { background:linear-gradient(90deg,#fff 0 50%,#fff7f8 50%); }
.fp-celebrate #inquiry .form { border-top-width:4px; }
.fp-celebrate #inquiry .inquiry-photo { padding:0 24px 0 0; border-right:2px solid #c10b24; }
.fp-inner .form__grid { column-gap:24px; }
.fp-inner .qty { border-color:var(--rb-print-rule); }

/* Story: the original barn, Randell, her own cards, and the ingredient ledger. */
.rb-story .ph--story .ph__photo img { aspect-ratio:.92; object-position:50% 45%; }
.rb-story .ph--story .quote { margin-bottom:0; }
.rb-story .maker__photo { padding:0 0 20px 24px; border:0; border-left:2px solid #c10b24; }
.rb-story .maker__copy { padding-block:20px; }
.rb-story .band--hand { border-block:1px solid var(--rb-print-rule); }
.rb-story .hand { gap:28px; }
.rb-story .hand .caption { margin-top:16px; }
.rb-story .timeline::before { width:1px; background:var(--rb-print-rule); }
.rb-story .tl { padding-bottom:28px; }
.rb-story .ingredients { border-block:1px solid var(--rb-print-rule); }
.rb-story .ingredients .panel { border-top:3px solid #c10b24; padding-top:24px; }
.rb-story .ingredients .panel__title { font-size:clamp(40px,4.4vw,64px); }
.rb-story .press { background:#fff7f8; border-bottom:1px solid var(--rb-print-rule); }
.rb-story .press__main img { aspect-ratio:1.25; object-position:50% 40%; }
.rb-story .press__clip { transform:rotate(2deg); }
.rb-story .press__clip img { border:6px solid #fff; }
.rb-story .markets__photo { padding-left:24px; border-left:2px solid #c10b24; }
.rb-story .markets__photo img { aspect-ratio:.91; object-position:50% 50%; }

/* Visit: practical details remain first; the pickup print adds a human connection. */
.rb-visit .ph--visit .room__photo { padding-left:24px; border-left:2px solid #c10b24; }
.rb-visit .ph--visit .room__photo .room__img { left:24px; width:calc(100% - 24px); }
.rb-visit .rb-order-layout { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(40px,6vw,88px); align-items:start; }
.rb-visit .rb-order-photo img { width:100%; height:auto; aspect-ratio:1.02; object-fit:cover; object-position:50% 55%; }
.rb-visit #order .offers { grid-template-columns:1fr; gap:26px; }
.rb-visit #order .offer { display:block; padding-top:22px; }
.rb-visit #order .offer>.ic { display:none; }
.rb-visit #order .offer>:not(.ic) { margin-top:12px; }
.rb-visit #order .offer__title { font-size:26px; line-height:1.2; max-width:none; margin-top:0; }
.rb-visit #order .offer p { max-width:45ch; }
.rb-visit #order .offer .textlink,.rb-visit #order .offer__links { justify-self:start; }
.rb-visit #cafe-title { max-width:13ch; }
.rb-visit .rb-cafe-section .framed { padding-left:24px; border-left:2px solid #c10b24; }
.rb-visit .rb-cafe-section .split { align-items:center; }
.rb-visit .faq summary::after { color:#c10b24; }

/* Common close: generous readable links and one original barn drawing on white. */
.rb-site .closer { border-top:1px solid var(--rb-print-rule); }
.rb-site .rb-footer-vignette { padding-top:36px; padding-bottom:24px; }
.rb-site .rb-footer-vignette img { width:280px; max-width:70vw; height:auto; }
.rb-site .footer__grid { padding-block:44px; border-top:1px solid #c10b24; }
.rb-site .footer__nav a { display:flex; align-items:center; min-height:40px; padding-block:6px; }
.rb-site .footer__base { border-top:1px solid var(--rb-print-rule); padding-top:20px; }
.rb-site .footer :focus-visible { outline-color:#c10b24; }

@media(min-width:851px) and (max-width:1100px) {
 .rb-site.rb-pies .tiles--lead { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .rb-menu .mcat { column-gap:40px; }
 .rb-menu .ph--menu .ph__grid { column-gap:40px; }
}
@media(max-width:850px) {
 .rb-site.rb-pies .tiles--lead { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .fp-home .fp-signature,.fp-home .fp-whoopie,.fp-home .fp-counter,.fp-home .fp-randell,.fp-home .fp-visit { padding-block:72px; }
 .rb-menu [data-menu-number] { padding-block:72px; }
 .rb-menu .mcat__photos { position:static; }
 .rb-visit .rb-order-layout { grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:32px; }
 .fp-celebrate .tiles--lead.tiles--five { gap:24px 18px; }
}
@media(max-width:640px) {
 .fp-inner .ph__photo[data-rb-print] { padding-left:20px; }
 .fp-inner .ph__photo[data-rb-print]::before { width:10px; top:18px; bottom:56px; }
 .rb-site .rb-margin-sketch { width:154px; height:48px; margin-top:24px; }
 .rb-site .rb-photo-caption { gap:10px; font-size:12px; margin-top:12px; padding-top:10px; }
 .rb-site .rb-portfolio-label { font-size:10px; margin-bottom:14px; }
 .fp-home .fp-place { padding-top:28px; }
 .fp-home .fp-place-room { padding-left:18px; padding-bottom:0; }
 .fp-home .fp-place-room::before { width:8px; bottom:16px; }
 .fp-home .fp-signature,.fp-home .fp-whoopie,.fp-home .fp-counter,.fp-home .fp-randell,.fp-home .fp-visit { padding-block:56px; }
 .fp-home .fp-signature-photo { padding-left:18px; }
 .fp-home .fp-signature-photo::before { width:8px; top:16px; bottom:80px; }
 .fp-home .fp-signature-photo figcaption { gap:4px; }
 .fp-home .fp-signature-copy { padding:0; }
 .fp-home .fp-signature-recognition { font-size:10px; }
 .fp-home .fp-signature-recognition strong { font-size:28px; }
 .fp-home .fp-whoopie-photo { padding-right:16px; }
 .fp-home .fp-handwriting { gap:24px 16px; }
 .fp-home .fp-visit-photo { padding-left:16px; }
 .fp-home .fp-cake-gallery { gap:28px; }
 .rb-menu .ph--menu .ph__grid { gap:32px; }
 .rb-menu .ph--menu .ph__photo img { aspect-ratio:1.02; object-position:50% 50%; }
 .rb-menu [data-menu-number],.rb-pies #pies,.rb-pies #in-season { padding-block:56px; }
 .rb-menu [data-menu-number] .label::before { font-size:14px; margin-bottom:18px; }
 .rb-menu .mcat__photos { gap:12px; }
 .rb-menu #breakfast-cookies .mcat__photos,.rb-menu #gifts .mcat__photos { padding-left:16px; }
 .rb-menu #sweets .interlude { margin-bottom:30px; }
 .rb-menu #sweets .interlude img { aspect-ratio:1.5; }
 .rb-menu #drinks .drinks__copy { padding:0; }
 .rb-menu #drinks .drinks__photos { padding-bottom:20px; }
 .rb-pies .tiles--lead { gap:28px 16px; }
 .rb-pies .tiles--lead .tile__tag { font-size:14px; }
 .rb-pies .namelist { gap:10px 18px; }
 .rb-pies .namelist li { font-size:12px; }
 .rb-pies #cakes .cakes__photos { padding-left:16px; gap:12px; }
 .rb-pies #more .tiles { grid-template-columns:1fr; gap:30px; }
 .rb-pies #more .tile img { aspect-ratio:1.2; }
 .rb-seasonal .ph--season .slip-photo { padding-left:18px; }
 .rb-seasonal .ph--season .slip-photo::before { width:8px; top:16px; bottom:16px; }
 .rb-seasonal .ph--season .slip-photo img { aspect-ratio:1.12; }
 .rb-seasonal .ph--season .slip { padding-top:22px; }
 .rb-seasonal .season__pies { gap:12px; }
 .rb-seasonal .gf-pies .framed { padding-left:16px; }
 .rb-seasonal #preorder,.fp-celebrate #inquiry { background:#fff; }
 .fp-celebrate .ph--cake .ph__grid { padding-top:36px; padding-bottom:44px; gap:30px; }
 .fp-celebrate .pinned { gap:24px 16px; }
 .fp-celebrate .pinned__a { padding-left:16px!important; }
 .fp-celebrate .tiles--lead.tiles--five { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 16px; }
 .fp-celebrate .tiles--five .tile:nth-child(n) { grid-column:auto; }
 .fp-celebrate .tiles--five .tile:nth-child(1) { grid-column:1/-1; }
 .fp-celebrate .tiles--five .tile:nth-child(n) img { aspect-ratio:1; }
 .fp-celebrate .tiles--five .tile:nth-child(1) img { aspect-ratio:1.25; }
 .fp-celebrate #events .events-photos { gap:24px; margin-bottom:30px; }
 .fp-celebrate #inquiry .inquiry-photo { padding-right:16px; }
 .rb-story .ph--story .ph__photo img { aspect-ratio:.95; }
 .rb-story .maker__photo { padding:0 0 0 16px; }
 .rb-story .maker__copy { padding:0; }
 .rb-story .hand { gap:28px; }
 .rb-story .ingredients .panel { padding-top:22px; }
 .rb-story .ingredients .panel__title { font-size:40px; }
 .rb-story .markets__photo { padding-left:16px; }
 .rb-visit .ph--visit .room__photo { padding-left:16px; }
 .rb-visit .ph--visit .room__photo .room__img { left:16px; width:calc(100% - 16px); }
 .rb-visit .rb-order-layout { display:flex; flex-direction:column; gap:32px; }
 .rb-visit #order .offers { order:1; }
 .rb-visit .rb-order-photo { order:2; width:100%; max-width:440px; }
 .rb-visit .rb-order-photo img { aspect-ratio:1.25; }
 .rb-visit .rb-cafe-section .framed { padding-left:16px; }
 .rb-site .rb-footer-vignette { padding-top:28px; padding-bottom:20px; }
 .rb-site .rb-footer-vignette img { width:210px; }
 .rb-site .footer__grid { padding-block:32px; }
 .rb-site .footer__nav a { min-height:44px; }
}


/* SOURCE: final-art-direction.css */
/* Final editorial pass, November 4. No hero selectors or image-file changes.
   Distinct, shorter phone chapters; complete photographic subjects; quiet close. */

/* Pair one cake detail with one complete cake, rather than two forced close crops. */
@media(min-width:641px) {
 .fp-celebrate .tiles--lead.tiles--five { align-items:end; }
 .fp-celebrate .tiles--five .tile:nth-child(-n+2) { max-width:520px; width:100%; }
 .fp-celebrate .tiles--five .tile:first-child { justify-self:end; }
 .fp-celebrate .tiles--five .tile:nth-child(2) { justify-self:start; }
 .fp-celebrate .tiles--five .tile:nth-child(2) img { aspect-ratio:auto; }
}
@media(min-width:851px) {
 .rb-story .ph--story .ph__photo { max-width:480px; width:100%; justify-self:end; }
}

/* The original barn belongs to the footer signature, not a floating interlude. */
.rb-site .footer__brand .rb-footer-vignette { margin:24px 0 0; padding:0; min-height:0; width:100%; max-width:260px; justify-content:flex-start; }
.rb-site .footer__brand .rb-footer-vignette img { width:100%; max-width:100%; }
.rb-site .footer__grid { margin-top:0; }
.fp-home .fp-season .fp-eyebrow { color:#fff; }

@media(max-width:680px) {
 .rb-site .stickybar { gap:0; left:12px; right:12px; bottom:max(10px,env(safe-area-inset-bottom)); background:white; border:1px solid #c7b6ae; box-shadow:0 3px 18px #3c23171a; }
 .rb-site .stickybar a { background:#fff; color:#3c2317; outline:0; min-height:52px; padding:12px 10px; font-size:14px; }
 .rb-site .stickybar .stickybar__call { color:#c10b24; border-right:1px solid #ded4d0; }
 .rb-site .stickybar a:focus-visible { outline:2px solid #c10b24; outline-offset:-5px; }
 .rb-site .stickybar .ic { width:17px; height:17px; }
}

@media(max-width:640px) {
 .fp-home :is(.fp-place,.fp-signature,.fp-whoopie,.fp-counter,.fp-randell,.fp-visit) { padding-block:44px; }
 .fp-home .fp-place { padding-top:28px; }
 .fp-home :is(.fp-eyebrow) { font-size:11px; line-height:1.6; letter-spacing:.11em; }
 .fp-home :is(.fp-section-head,.fp-signature-grid) { gap:24px; }

 /* Café: one room establishing shot, a smaller bread print beside the invitation. */
 .fp-home .fp-place-grid { grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr); gap:24px 18px; align-items:start; }
 .fp-home .fp-place-room { grid-column:1/-1; }
 .fp-home .fp-place-room img { min-height:0; aspect-ratio:1.55; height:auto; }
 .fp-home .fp-place-copy { display:contents; }
 .fp-home .fp-place-copy>.fp-eyebrow { grid-column:1/-1; grid-row:2; margin:0; }
 .fp-home .fp-place-copy>.fp-heading { grid-column:1; grid-row:3; align-self:center; }
 .fp-home .fp-place-copy>.fp-body { grid-column:1/-1; grid-row:4; margin:0; }
 .fp-home .fp-place-copy>.textlink { grid-column:1/-1; grid-row:5; justify-self:start; margin:0; }
 .fp-home .fp-place .fp-heading { font-size:34px; line-height:1.06; margin-bottom:18px; }
 .fp-home .fp-place .fp-body { font-size:15px; line-height:1.65; }
 .fp-home .fp-place-bread { grid-column:2; grid-row:3; align-self:start; padding-top:0; }
 .fp-home .fp-place-bread img { aspect-ratio:.7; object-position:50% 72%; }
 .fp-home .fp-place-bread figcaption { font-size:12px; }
 .fp-home .fp-place .textlink { font-size:13px; }

 .fp-home .fp-signature-photo img { width:100%; height:auto; aspect-ratio:1.25; object-fit:cover; object-position:50% 42%; }
 .fp-home .fp-signature-copy .fp-heading { font-size:44px; margin-bottom:20px; }
 .fp-home .fp-signature-copy .fp-body { font-size:15px; line-height:1.7; }
 .fp-home .fp-signature-recognition { margin-block:22px; }

 /* The box is a supporting print instead of a second full-screen product hero. */
 .fp-home .fp-whoopie-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 18px; align-items:start; }
 .fp-home .fp-whoopie-copy { display:contents; }
 .fp-home .fp-whoopie-copy>.fp-eyebrow { grid-column:1/-1; grid-row:1; margin:0; }
 .fp-home .fp-whoopie .fp-heading { grid-column:1; grid-row:2; font-size:36px; margin:0; align-self:center; }
 .fp-home .fp-whoopie-photo { grid-column:2; grid-row:2; order:0; padding-right:0; border:0; width:100%; }
 .fp-home .fp-whoopie-photo img { aspect-ratio:.86; }
 .fp-home .fp-whoopie-photo figcaption { flex-direction:column; gap:0; padding-top:8px; margin-top:10px; font-size:12px; }
 .fp-home .fp-whoopie-photo figcaption span { text-align:left; }
 .fp-home .fp-whoopie-copy>.fp-body { grid-column:1/-1; grid-row:3; margin:0; font-size:15px; }
 .fp-home .fp-whoopie-chips { grid-column:1/-1; grid-row:4; margin:0; }
 .fp-home .fp-whoopie-copy>.btn { grid-column:1/-1; grid-row:5; justify-self:start; margin:0; }

 /* A small three-part contents page, with all original descriptions retained. */
 .fp-home .fp-counter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
 .fp-home .fp-collection:first-child { grid-column:auto; }
 .fp-home .fp-collection .fp-collection-photo img { aspect-ratio:.8; }
 .fp-home .fp-collection .fp-collection-caption { display:block; padding-top:12px; margin-top:12px; }
 .fp-home .fp-collection-number { font-size:11px; margin-bottom:10px; }
 .fp-home .fp-collection-caption h3 { font-size:19px; line-height:1.15; }
 .fp-home .fp-collection-caption p { font-size:12px; line-height:1.6; margin-top:9px; }
 .fp-home .fp-collection-caption .rb-arrow { display:none; }

 /* Maker: portrait and title introduce a compact story, then her real lettering. */
 .fp-home .fp-randell-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 18px; align-items:start; }
 .fp-home .fp-randell-copy { display:contents; }
 .fp-home .fp-randell-copy>.fp-eyebrow { grid-row:1; grid-column:1/-1; margin:0; }
 .fp-home .fp-randell-copy>.fp-heading { grid-row:2; grid-column:1; font-size:38px; align-self:center; margin:0; text-wrap:initial; }
 .fp-home .fp-randell-portrait { grid-row:2; grid-column:2; order:0; width:100%; }
 .fp-home .fp-randell-portrait img { height:auto; aspect-ratio:auto; }
 .fp-home .fp-randell-portrait figcaption { font-size:12px; margin-top:10px; }
 .fp-home .fp-randell-copy>.fp-quote { grid-row:3; grid-column:1/-1; margin:0; padding-top:18px; }
 .fp-home .fp-randell-copy>.fp-body { grid-row:4; grid-column:1/-1; margin:0; font-size:15px; }
 .fp-home .fp-randell-copy>.textlink { grid-row:5; grid-column:1/-1; justify-self:start; }
 .fp-home .fp-handwriting { grid-row:6; grid-column:1/-1; order:0; padding-top:12px; gap:20px 16px; }
 .fp-home .fp-handwriting-note { padding-right:48px; }
 .fp-home .fp-handwriting-note p { font-size:25px; }
 .fp-home .fp-handwriting-note>span:last-child { font-size:12px; margin-top:10px; }
 .fp-home .fp-handwriting-note::after { width:28px; height:80px; right:2px; }

 /* Seasonal menu and complete documentary print share a row. */
 .fp-home .fp-season-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); padding-block:44px; gap:22px 16px; align-items:start; }
 .fp-home .fp-season-copy { display:contents; }
 .fp-home .fp-season-copy>.fp-eyebrow { grid-row:1; grid-column:1/-1; margin:0; }
 .fp-home .fp-season-copy>.fp-heading { grid-row:2; grid-column:1/-1; font-size:42px; margin:0; }
 .fp-home .fp-season-copy>.fp-heading br { display:none; }
 .fp-home .fp-season-copy>.fp-body { grid-row:3; grid-column:1/-1; margin:0; }
 .fp-home .fp-pie-list { grid-row:4; grid-column:1; margin:0; grid-template-columns:1fr; }
 .fp-home .fp-pie-list li { font-size:13px; line-height:1.6; padding-block:9px; }
 .fp-home .fp-season-photo { grid-row:4; grid-column:2; width:100%; padding:6px 6px 0; }
 .fp-home .fp-season-photo figcaption { display:block; padding:10px 0; font-size:12px; }
 .fp-home .fp-season-photo figcaption strong { display:block; font-size:12px; margin-bottom:4px; }
 .fp-home .fp-season-actions { grid-row:5; grid-column:1/-1; margin:0; gap:12px; }

 /* A visible next print invites a swipe; original links/lightbox stay accessible. */
 .fp-home .fp-cake-gallery { display:flex; gap:18px; align-items:start; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:10px; scrollbar-color:#c10b24 #f5e7e9; scrollbar-width:thin; }
 .fp-home .fp-cake-gallery a { flex:0 0 82%; scroll-snap-align:start; }
 .fp-home .fp-cake-gallery a:nth-child(n) img { height:auto; aspect-ratio:1; object-position:50% 40%; }
 .fp-home .fp-cake-gallery a>span { min-height:44px; }
 .fp-home .fp-celebrations { padding-block:44px; }

 /* Arrival is practical: a complete, smaller storefront beside the invitation. */
 .fp-home .fp-visit-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 18px; align-items:start; }
 .fp-home .fp-visit-copy { display:contents; }
 .fp-home .fp-visit-copy>.fp-eyebrow { grid-row:1; grid-column:1/-1; margin:0; }
 .fp-home .fp-visit-copy>.fp-heading { grid-row:2; grid-column:1; font-size:42px; margin:0; align-self:center; }
 .fp-home .fp-visit-photo { grid-row:2; grid-column:2; padding:0; border:0; }
 .fp-home .fp-visit-photo img[src] { aspect-ratio:auto; height:auto; }
 .fp-home .fp-visit-photo figcaption { font-size:12px; line-height:1.6; margin-top:10px; }
 .fp-home .fp-visit-copy>.fp-body { grid-row:3; grid-column:1/-1; margin:0; font-size:15px; }
 .fp-home .fp-visit-facts { grid-row:4; grid-column:1/-1; margin:0; gap:16px; }
 .fp-home .fp-visit-actions { grid-row:5; grid-column:1/-1; margin:0; gap:12px 22px; }
 .rb-site .footer__brand .rb-footer-vignette { max-width:200px; margin-top:20px; }
}

@media(max-width:359px) {
 .fp-home .fp-place .fp-heading { font-size:30px; }
 .fp-home .fp-whoopie .fp-heading { font-size:31px; }
 .fp-home .fp-randell-copy>.fp-heading { font-size:32px; }
 .fp-home .fp-season-copy>.fp-heading { font-size:36px; }
 .fp-home .fp-collection-caption h3 { font-size:17px; }
 .fp-home .fp-visit-copy>.fp-heading { font-size:36px; }
 .fp-home .fp-visit-facts { grid-template-columns:1fr; }
}


/* SOURCE: claude-finish.css */
/* claude-finish.css — independent finishing pass, November 4 2026.
   Loaded last by assemble_styles.py. Scoped overrides only: no protected file,
   hero art, hero markup, photo file or script is changed. Each rule names the
   observed problem it fixes; see CHANGELOG.md for before/after evidence. */

/* 1. Header logo. brand-desktop.png / brand-mobile.png are opaque RGB files whose
   background is 252-253 grey, so a faint box showed around the logo on the
   #fff header at every width. A 2% brightness lift clips that ground to white;
   the red and espresso marks move by less than 2%. The image files are unchanged. */
.rb-site .rb-brand img { filter: brightness(1.02); }

/* 2. Story, "lettered by hand": the middle card was pushed 56px down by a rule
   left over from the original rotated pinned-card design (styles.css .hand
   li:nth-child(2)). With the cards now flat, it read as an accidental stair step
   and misaligned the three captions. */
@media (min-width: 681px) {
  .rb-story .hand li:nth-child(2) { margin-top: 0; }
}

/* 3. Celebrate opening group: photos kept their natural ratios with bottoms
   aligned, so the birthday cake started ~30px below its neighbours. All three
   now share the row height; the cover crop trims a few percent from the sides
   of the birthday photo only. */
@media (min-width: 641px) {
  .fp-celebrate .pinned { align-items: stretch; }
  .fp-celebrate .pinned figure { display: flex; flex-direction: column; }
  .fp-celebrate .pinned figure > a { flex: 1 1 auto; min-height: 0; }
  .fp-celebrate .pinned figure > a img { height: 100%; object-fit: cover; object-position: 50% 50%; }
}
/* ...and on phones the two smaller cakes share one 4:5 frame, so their tops and
   captions line up. The birthday plaque stays whole. */
@media (max-width: 640px) {
  .fp-celebrate .pinned { align-items: start; }
  .fp-celebrate .pinned .pinned__b img,
  .fp-celebrate .pinned .pinned__c img { aspect-ratio: 4 / 5; height: auto; object-fit: cover; }
  .fp-celebrate .pinned .pinned__c img { object-position: 45% 50%; }
}

/* 4. Home, "Even the cards are made by hand": the botanical sprig was attached
   to the far right edge of a wide text column, so it floated in empty space on
   desktop and beside the body text on phones. Removed; the hand-lettered
   photographs carry the idea. */
.fp-home .fp-handwriting-note::after { display: none; }
.fp-home .fp-handwriting-note { padding-right: 24px; }
@media (max-width: 680px) {
  .fp-home .fp-handwriting-note { padding-right: 0; }
}

/* 5. Home visit facts: in two columns on phones, "Tue to Sat · 7:30 am to 5 pm"
   broke so that "5 pm" sat alone on its own line (360-520px). One column keeps
   every hours line whole. */
@media (max-width: 520px) {
  .fp-home .fp-visit-facts { grid-template-columns: 1fr; gap: 18px; }
}

/* 6. Pies & cakes, tarts and cheesecakes on phones: three full-width photos in
   a row of stacked screens (about 1,000px). Now one lead photo and two side by
   side, the same rhythm as "pies through the seasons". */
@media (max-width: 640px) {
  .rb-pies #more .tiles { grid-template-columns: 1fr 1fr; gap: 24px 14px; }
  .rb-pies #more .tile:first-child { grid-column: 1 / -1; }
  .rb-pies #more .tile:first-child img { aspect-ratio: 1.2; }
  .rb-pies #more .tile:not(:first-child) img { aspect-ratio: 1; }
}

/* 7. Our story below 1021px: two full-width portraits of Randell sat back to
   back (with a 130px gap on phones). The maker chapter now pairs her heading
   and biography with a smaller portrait. DOM and reading order are unchanged:
   photo, heading, text. */
@media (max-width: 1020px) {
  .rb-story .ph--story > .wrap { padding-bottom: 24px; }
  .rb-story .ph--story + .band { padding-top: 24px; }
}
@media (min-width: 681px) and (max-width: 1020px) {
  .rb-story .maker__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 300px); gap: 40px; align-items: center; }
  .rb-story .maker__photo { grid-column: 2; grid-row: 1; }
  .rb-story .maker__copy { grid-column: 1; grid-row: 1; padding: 0; }
}
@media (max-width: 680px) {
  .rb-story .maker__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px 18px; align-items: end; }
  .rb-story .maker__copy { display: contents; }
  .rb-story .maker__photo { grid-column: 2; grid-row: 1; }
  .rb-story .maker__copy > .h2 { grid-column: 1; grid-row: 1; align-self: end; margin: 0; }
  .rb-story .maker__copy > .prose { grid-column: 1 / -1; grid-row: 2; margin-top: 0; }
}

/* 8. (Retired November 5.) This kept the Seasonal pies form introduction in
   view beside the long request form on desktop. Randell asked for Thanksgiving
   to be call-to-order only, so the form section was removed and the rule has
   nothing left to style. The November 4 evidence is kept in review/. */

/* 8b. Celebrate, the peach cake after the inquiry form at tablet widths
   (681-850px) filled up to 620px of width and ~700px of height after Send.
   It now matches the compact phone treatment. */
@media (min-width: 681px) and (max-width: 850px) {
  .fp-celebrate #inquiry .inquiry-photo { width: min(100%, 300px); align-self: center; }
  .fp-celebrate #inquiry .inquiry-photo img { width: 100%; height: auto; }
}

/* 9. Celebrate form on phones: "Traditional" stretched across the full width
   on its own row, so it read as a separate control. The three style choices
   now share one row. Below 370px the words would break mid-word, so the
   original two-plus-one layout is kept there. */
@media (min-width: 370px) and (max-width: 680px) {
  .fp-inner .choice__row:has(> label:nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fp-inner .choice__row:has(> label:nth-child(3):last-child) label:last-child { grid-column: auto; }
}

/* 10. Smallest labels: several uppercase labels rendered at 10px. Raised to the
   11px used by the site's other eyebrows. */
.fp-visit-facts dt,
.rb-seasonal .ph--season .slip__row dt,
.rb-seasonal .ph--season .slip__head span { font-size: 11px; }
@media (max-width: 640px) {
  .rb-site .rb-portfolio-label,
  .fp-home .fp-signature-recognition { font-size: 11px; }
}

/* 11. Preview notice on phones (inner pages): "A design exploration for Randell /
   Not the live website" shrank to 8-9px with the viewport. It now holds 10px and
   wraps onto two centred lines on the narrowest phones instead of shrinking.
   The homepage is left exactly as approved (its ribbon is part of the locked
   opening), and the ribbon is removed at launch anyway. Desktop is unchanged. */
@media (max-width: 680px) {
  .rb-site:not(.rb-home) .rb-preview-ribbon.rb-preview-ribbon { height: auto; min-height: 28px; padding: 6px 12px; font-size: 10px; flex-wrap: wrap; row-gap: 2px; column-gap: 12px; line-height: 1.3; text-align: center; }
}
/* Below 381px the two phrases stack as two centred lines without the star. */
@media (max-width: 380px) {
  .rb-site:not(.rb-home) .rb-preview-ribbon.rb-preview-ribbon { flex-direction: column; }
  .rb-site:not(.rb-home) .rb-preview-ribbon .rb-ribbon-star { display: none; }
}

/* 12. Thanks page: the bakery's number broke across lines ("(914) 231-" / "7779",
   or "(914)" / "231-7779") at most widths in Chromium and Firefox. Balanced
   wrapping keeps it whole from 360px up; below that the paragraph narrows
   slightly so the number lands on one line. */
.rb-site .pagehead__lede { text-wrap: balance; }
@media (max-width: 359px) {
  .rb-site .pagehead__lede { text-wrap: wrap; max-width: 16em; margin-inline: auto; }
}

/* 14. Thanksgiving is call-to-order (Randell, November 5). Her cutoff and store
   credit terms sit in small print under the call actions on the homepage and
   under the steps on Seasonal pies, as she asked. */
.fp-home .fp-season-fine { margin: 18px 0 0; max-width: 42ch; font-size: 12px; line-height: 1.55; color: #fff; }
@media (max-width: 640px) {
  .fp-home .fp-season-copy > .fp-season-fine { grid-row: 6; grid-column: 1 / -1; margin: 0; }
}
.rb-seasonal .steps__fine { margin: 28px 0 0; font-size: 12px; line-height: 1.55; color: #765d54; }

/* 15. Randell's photo requests (November 6). Her photo at the bakery's front door
   replaces the Halloween storefront on Visit & order and in the homepage visit
   chapter. Its frames keep the storefront's crop, anchored a little lower so her
   face and the tray both show. */
.fp-visit-photo img[src$="randell-portrait.webp"] { aspect-ratio: 1.05; object-fit: cover; object-position: 50% 14%; }
.fp-inner .ph--visit .room__photo .room__img[src$="randell-portrait.webp"] { object-position: 50% 14%; }

/* 16. More of Randell's photos (November 6). Her emailed photos arrived at 640px,
   so each goes where it displays near its real size.
   - Homepage visit chapter: her daytime storefront shot keeps its own landscape
     shape instead of being cropped and enlarged.
   - Menu gifts & packs: now a 2 x 2 set (gift box, holiday gift box, granola, biscotti).
   - Celebrate events: a third photo (holiday gift boxes), three across from 641px
     (phones keep the single-column stack). */
.fp-visit-photo img[src$="storefront-day-randell.webp"] { aspect-ratio: auto; height: auto; }
@media (min-width: 641px) {
  .fp-celebrate #events .events-photos:has(> figure:nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .fp-celebrate #events .events-photos:has(> figure:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1001px) {
  .fp-celebrate #events .events-photos:has(> figure:nth-child(4)) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 17. Photos from Randell's Instagram (Muse saved them at full size, Nov 6): each
   one replaces a repeat or a weaker shot in an existing slot. The pastry case on
   the homepage's "from the counter" card, the golden-hour cafe on Visit & order,
   the raspberry ginger pear and unbaked lattice pies on Seasonal pies, newer
   savory tarts on the menu, and four lattice pies on Pies & cakes. On Celebrate,
   Randell with a catering tray is the fourth events photo: 2 x 2 on tablets, four
   across on desktop. Ordinary crop framing only. */
.fp-celebrate #events .events-photos img[src$="ig-randell-catering.webp"] { object-position: 50% 8%; }

/* 18. Launch prep (November 8). Celebrate events: on phones the four photos sat in
   one full-width column, about a screen of scrolling; they are now 2 x 2 with
   shorter captions spacing. Our story: Randell on the organic flour bags is the
   maker portrait (her sourdough-basket portrait moved to the homepage); the crop
   keeps her face clear of the frame top. */
@media (max-width: 640px) {
  .fp-celebrate #events .events-photos:has(> figure:nth-child(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 12px; }
}
.rb-story .maker__photo img[src$="randell-organic-flour.webp"] { object-position: 50% 30%; }

