:root { --terracotta:#8f3f2b; --cream:#fff7e8; --olive:#556644; --espresso:#30251f; --rule:#d8c9b5; --serif:Georgia,"Times New Roman",serif; --sans:Arial,Helvetica,sans-serif; }
* { box-sizing:border-box; }
body { margin:0; background:var(--cream); color:var(--espresso); font:400 18px/1.65 var(--sans); }
html { scroll-padding-top:20px; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { font-family:var(--serif); font-weight:700; line-height:1.15; overflow-wrap:anywhere; }
h1 { color:var(--terracotta); font-size:clamp(34px,3.6vw,48px); letter-spacing:-.025em; }
h2 { font-size:clamp(30px,2.8vw,40px); letter-spacing:-.02em; }
h3 { font-size:25px; }
p+p { margin-top:16px; }
a { color:inherit; text-underline-offset:5px; }
a:hover { text-decoration-thickness:2px; }
a:focus-visible,summary:focus-visible { outline:3px solid currentColor; outline-offset:5px; }
img { display:block; width:100%; height:auto; }
figure { min-width:0; }
figcaption { padding-top:10px; font-size:14px; line-height:1.5; }
dl,dd { margin:0; }
.wrap { width:min(1200px,calc(100% - 64px)); margin-inline:auto; }
.section { padding-block:64px; }
.eyebrow,.menu-number { font-size:13px; font-weight:700; letter-spacing:.1em; line-height:1.6; }
.eyebrow { color:var(--olive); margin-bottom:14px; }
.small { font-size:15px; line-height:1.6; }
.skip-link { position:absolute; left:8px; top:8px; z-index:5; padding:12px; background:var(--cream); transform:translateY(-200%); }
.skip-link:focus { transform:none; }
.concept-notice { text-align:center; padding:12px 24px; border-bottom:1px solid var(--rule); font-size:14px; line-height:1.5; }
.masthead { text-align:center; padding-block:16px 12px; }
.wordmark { display:inline-flex; flex-direction:column; align-items:center; text-decoration:none; color:var(--terracotta); font-family:var(--serif); line-height:1; }
.wordmark-top { font-size:16px; font-style:italic; }
.wordmark-name { font-size:38px; font-weight:700; letter-spacing:-.03em; margin-block:5px 2px; }
.wordmark-cafe { font-size:20px; font-style:italic; }
nav { display:flex; flex-wrap:wrap; justify-content:center; gap:4px 30px; margin-top:10px; padding-top:8px; border-top:1px solid var(--rule); }
nav a { display:inline-flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:5px; min-height:44px; font-size:16px; text-decoration:none; }
.demo-label { font-size:14px; }
.hero-photo img { aspect-ratio:3.1/1; object-fit:cover; object-position:50% 54%; }
.hero-photo figcaption { text-align:right; }
.welcome-copy { text-align:center; max-width:970px; margin-inline:auto; padding:24px 0 52px; }
.welcome-copy .intro { max-width:650px; margin:14px auto 0; }
.welcome-actions { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:12px 28px; margin-top:18px; }
.button { display:inline-flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:16px; min-height:48px; padding:12px 22px; background:var(--terracotta); color:var(--cream); font-size:16px; font-weight:700; text-align:center; text-decoration:none; border:1px solid transparent; }
.button:hover { text-decoration:underline; }
.text-link { display:inline-flex; align-items:center; flex-wrap:wrap; gap:8px; min-height:44px; padding-block:9px; font-size:16px; font-weight:700; }
.menu-band { background:var(--olive); color:var(--cream); }
.section-intro { max-width:760px; margin:0 auto 28px; text-align:center; }
.section-intro>p:last-child { margin-top:16px; }
.menu-band .eyebrow { color:var(--cream); }
.menu-disclaimer { max-width:820px; margin:0 auto 34px; text-align:center; font-size:15px; }
.menu-board { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; border-top:1px solid #a7b095; border-bottom:1px solid #a7b095; padding-block:28px; }
.menu-board>section+section { border-left:1px solid #a7b095; padding-left:36px; }
.menu-board h3 { font-size:29px; margin:8px 0 24px; }
.menu-board dl>div+div { margin-top:24px; }
.menu-board dt { font-size:18px; font-weight:700; line-height:1.4; }
.menu-board dd { font-size:16px; line-height:1.65; margin-top:7px; }
.menu-notes { margin-top:24px; font-size:16px; }
.menu-notes summary { cursor:pointer; min-height:44px; padding-block:10px; }
.menu-notes p { max-width:840px; padding-top:10px; }
.table-intro { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.25fr); gap:64px; align-items:center; margin-bottom:32px; }
.photo-mosaic { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(0,1fr); gap:24px; }
.photo-mosaic img { height:460px; object-fit:cover; }
.coffee-photo img { object-position:50% 62%; }
.ingredients-band { background:#fff; border-block:1px solid var(--rule); }
.ingredients-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:90px; }
.ingredient-boundary { border-left:3px solid var(--terracotta); padding-left:18px; margin-top:24px; max-width:520px; }
.ingredient-questions section+section { border-top:1px solid var(--rule); padding-top:22px; margin-top:22px; }
.ingredient-questions h3 { font-size:23px; margin-bottom:10px; }
.ingredient-questions p { font-size:17px; }
.visit .section-intro { max-width:800px; }
.visit-grid { display:grid; grid-template-columns:1.1fr 1fr 1fr; gap:40px; padding-block:28px; border-top:2px solid var(--terracotta); }
.visit-grid>* { min-width:0; }
.visit-grid h3 { font-size:25px; margin-bottom:20px; }
.contact-block>p { font-size:16px; }
.contact-block dl { margin-block:22px 16px; }
.contact-block dl>div+div { margin-top:12px; }
.contact-block dt { font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.08em; }
.contact-block dd { font-size:18px; overflow-wrap:anywhere; }
.hours dl>div { display:flex; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; padding-block:13px; border-bottom:1px solid var(--rule); font-size:16px; }
.hours dd { white-space:nowrap; }
.hours .small { margin-top:18px; }
.visit-checklist ol { margin:0; padding-left:22px; font-size:16px; }
.visit-checklist li+li { margin-top:14px; }
.visit-explanation { border-top:1px solid var(--rule); padding-top:24px; font-size:16px; max-width:850px; }
.closing { padding-block:40px 44px; background:var(--terracotta); color:var(--cream); text-align:center; }
.closing .table-sun { margin-bottom:18px; }
.closing h2 { font-size:clamp(28px,2.5vw,36px); }
.closing p { margin-top:12px; }
.button-light { background:var(--cream); color:var(--terracotta); margin-top:22px; }
.welcome .button:focus-visible { outline-color:var(--terracotta); }
.button-light:focus-visible { outline-color:var(--cream); }
.site-footer { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 30px; padding-block:24px; font-size:14px; }
.site-footer a { min-height:44px; display:inline-flex; align-items:center; }
@media(max-width:1023px) {
  .menu-board { gap:24px; }.menu-board>section+section { padding-left:24px; }
  .visit-grid { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }.visit-checklist { grid-column:1/-1; }
  .ingredients-layout { gap:40px; }.table-intro { gap:40px; }.photo-mosaic img { height:360px; }
}
@media(max-width:767px) {
  .wrap { width:calc(100% - 32px); }.section { padding-block:40px; }
  .concept-notice { padding:12px 16px; text-align:left; font-size:15px; line-height:1.6; }
  figcaption { font-size:15px; line-height:1.6; }
  .small,.menu-disclaimer { font-size:16px; line-height:1.6; }
  .masthead { padding-block:18px 14px; }.wordmark-name { font-size:36px; }
  nav { gap:2px 18px; margin-top:14px; padding-top:8px; }nav a { font-size:15px; }
  .hero-photo img { aspect-ratio:5/4; }.hero-photo figcaption { text-align:left; }
  .welcome-copy { padding-block:26px 40px; }.welcome-copy .eyebrow { font-size:12px; letter-spacing:.07em; }
  .welcome-copy .intro { font-size:17px; }.welcome-actions { gap:8px 20px; margin-top:20px; }
  .menu-board { grid-template-columns:minmax(0,1fr); gap:32px; padding-block:26px; }
  .menu-board>section+section { border-left:0; padding-left:0; border-top:2px solid #a7b095; padding-top:30px; }
  .menu-board dd { font-size:17px; }
  .menu-board h3 { margin-bottom:20px; }.menu-board dl>div+div { margin-top:20px; }
  .table-intro,.ingredients-layout,.visit-grid { grid-template-columns:minmax(0,1fr); gap:28px; }
  .table-intro { margin-bottom:26px; }.photo-mosaic { grid-template-columns:minmax(0,1fr); gap:26px; }
  .coffee-photo img { height:auto; aspect-ratio:4/3; }.interior-photo img { height:auto; aspect-ratio:3/2; object-position:50% 40%; }
  .visit-checklist { grid-column:auto; }.visit-grid { padding-block:24px; }.visit-grid>section+section { border-top:1px solid var(--rule); padding-top:24px; }
  .contact-block>p:not(.small) { font-size:17px; }
  .contact-block>.small { font-size:16px; line-height:1.6; }
  .contact-block dt { font-size:14px; line-height:1.6; }
  .hours dl>div { font-size:17px; line-height:1.6; }
  .closing { padding-block:34px; }.site-footer { gap:6px; font-size:15px; line-height:1.6; }.site-footer p { flex-basis:100%; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
