.restaurant-page { background:#fff; color:#17231f; }
.restaurant-page main#article { scroll-margin-top:80px; }
.restaurant-page h1,.restaurant-page h2,.restaurant-page h3 { letter-spacing:0; overflow-wrap:break-word; }
.restaurant-intro { max-width:1000px; padding-top:30px; }
.restaurant-breadcrumbs { display:flex; flex-wrap:wrap; gap:10px; color:#62706a; font-size:13px; margin:0 0 28px; }
.restaurant-breadcrumbs a { color:inherit; text-decoration:none; }
.restaurant-page h1 { font-size:46px; line-height:1.15; margin:12px 0 24px; }
.restaurant-prose { font-size:18px; line-height:1.75; color:#34443c; }
.restaurant-prose p { margin:0 0 20px; }
.restaurant-prose a,.restaurant-page .restaurant-body a:not(.detail-button),.restaurant-case-article a:not(.detail-button),.restaurant-author a { color:#216347; text-underline-offset:3px; }
.restaurant-prose strong { color:#192d22; }
.restaurant-prose ul,.restaurant-prose ol { padding-left:24px; }
.restaurant-prose li { margin:8px 0; }
.restaurant-lead > p:first-child { font-size:20px; line-height:1.6; }
.restaurant-lead > p:first-child strong { font-weight:500; }
.restaurant-actions { display:flex; align-items:center; flex-wrap:wrap; gap:12px; margin:24px 0 30px; }
.restaurant-actions-inline { margin-bottom:0; }
.restaurant-layout { display:grid; grid-template-columns:220px minmax(0,880px); justify-content:center; gap:52px; padding-top:32px; padding-bottom:56px; }
.restaurant-body { min-width:0; }
.restaurant-toc { align-self:start; position:sticky; top:100px; max-height:calc(100svh - 120px); overflow-y:auto; padding:0 12px 10px 0; font-size:14px; line-height:1.45; }
.restaurant-page .restaurant-toc h2 { font-size:18px; margin:0 0 14px; padding:0; border:0; }
.restaurant-toc ol { margin:0; padding-left:22px; }
.restaurant-toc li { padding:5px 0; }
.restaurant-toc a { color:#315f49; text-decoration:none; }
.restaurant-toc a:hover { text-decoration:underline; text-underline-offset:3px; }
.restaurant-toc-projects { display:block; padding-top:14px; margin-top:14px; border-top:1px solid #dce3df; }
.restaurant-section { padding-bottom:40px; scroll-margin-top:104px; }
.restaurant-page h2 { font-size:30px; line-height:1.3; margin:0 0 22px; padding-bottom:12px; border-bottom:1px solid #dce3df; }
.restaurant-page h3 { font-size:22px; line-height:1.4; margin:26px 0 12px; }
.restaurant-figure { min-width:0; margin:26px 0; }
.restaurant-figure a { display:block; }
.restaurant-figure img { display:block; width:100%; height:auto; max-height:660px; object-fit:contain; background:white; }
.restaurant-figure-photo > div { aspect-ratio:16/9; overflow:hidden; }
.restaurant-figure-photo img { height:100%; max-height:none; object-fit:cover; object-position:top; }
.restaurant-figure figcaption { font-size:13px; line-height:1.5; color:#68766e; margin-top:10px; }
.restaurant-illustrations-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
.restaurant-illustrations-pair img { aspect-ratio:4/3; }
.restaurant-case-reference { font-size:15px; line-height:1.6; padding-left:16px; border-left:3px solid #b9cec0; }
.restaurant-table-scroll { overflow-x:auto; margin:24px 0; }
.restaurant-prose table { border-collapse:collapse; width:100%; min-width:620px; font-size:15px; line-height:1.55; }
.restaurant-prose th,.restaurant-prose td { text-align:left; vertical-align:top; padding:13px 15px; border:1px solid #dce3df; }
.restaurant-prose th { background:#f0f4f1; color:#203c2b; }
.restaurant-prose th:first-child { width:23%; }
.restaurant-see-also { border-top:1px solid #dce3df; padding-top:10px; font-size:16px; line-height:1.75; }
.restaurant-see-also ul { padding-left:22px; }
.restaurant-see-also li { margin:8px 0; }
.restaurant-author { font-size:13px; line-height:1.6; color:#69746c; margin:30px 0 0; }
.restaurant-case-article { max-width:960px; padding-top:30px; padding-bottom:56px; }
.restaurant-case-article .restaurant-prose h2 { margin-top:34px; }
.restaurant-related { margin-top:32px; margin-bottom:48px; padding-top:20px; padding-bottom:20px; border-top:1px solid #d8dedb; border-bottom:1px solid #d8dedb; }
.restaurant-related p { margin:0 0 7px; color:#66736b; font-size:12px; font-weight:700; text-transform:uppercase; }
.restaurant-related a { color:#215a40; font-size:17px; line-height:1.5; text-underline-offset:4px; }
.story-visual.restaurant-project-visual { background:#fff; }
.story-visual.restaurant-project-visual .story-photo { object-fit:contain; }
.restaurant-page a:focus-visible,.restaurant-page button:focus-visible { outline:3px solid #315f78; outline-offset:5px; }
@media(max-width:1100px) {
  .restaurant-layout { grid-template-columns:1fr; gap:30px; max-width:1000px; }
  .restaurant-toc { position:static; max-height:none; padding:22px; background:#f3f6f4; }
  .restaurant-toc ol { columns:2; column-gap:30px; }
  .restaurant-toc li { break-inside:avoid; }
}
@media(max-width:600px) {
  .restaurant-intro,.restaurant-case-article { padding-top:22px; }
  .restaurant-breadcrumbs { font-size:12px; margin-bottom:22px; }
  .restaurant-page h1 { font-size:32px; margin:12px 0 22px; }
  .restaurant-page h2 { font-size:26px; }
  .restaurant-page h3 { font-size:21px; }
  .restaurant-prose { font-size:17px; line-height:1.7; }
  .restaurant-lead > p:first-child { font-size:18px; }
  .restaurant-actions { flex-direction:column; align-items:stretch; }
  .restaurant-toc { padding:18px; }
  .restaurant-toc ol { columns:1; }
  .restaurant-section { padding-bottom:34px; }
  .restaurant-illustrations-pair { grid-template-columns:1fr; gap:0; }
  .restaurant-illustrations-pair img { aspect-ratio:auto; }
  .restaurant-figure { margin:22px 0; }
  .restaurant-related a { font-size:16px; }
}
