/* Semantic blocks restored from source; existing project tokens remain authoritative. */
.article:has(.content-card-grid),.article:has(.content-gallery){max-width:none}.article>p,.article>ul,.article>ol,.article>blockquote{max-width:76ch}.content-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 24px;margin:32px 0 48px}.content-card-grid>div:not(.content-card){display:contents}.content-card{min-width:0;border-bottom:1px solid var(--line);padding-bottom:24px}.content-card img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;margin:0 0 16px}.content-card-title{font:600 18px/1.4 var(--body)}.content-card a{text-decoration:none}.content-card a:hover{text-decoration:underline}.content-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-block:32px}.content-gallery>div{display:contents}.content-gallery img{width:100%;height:320px;object-fit:contain;margin:0;background:#fff}.article table{display:table;width:100%;table-layout:auto}.article tr:nth-child(odd){background:color-mix(in srgb,var(--ink) 5%,var(--bg))}.article td,.article th{padding:16px}.content-link-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-block:24px}.content-link-grid a{display:block;padding:16px;border:1px solid var(--line);text-decoration:none;line-height:1.5}.content-link-grid a:hover{background:var(--accent)}.contact-strip{border-bottom:1px solid var(--line);padding-block:12px;font-size:14px;display:flex;gap:24px;flex-wrap:wrap}.site-navigation{position:relative}.site-navigation details>summary{cursor:pointer;font-size:16px;list-style:none;padding:16px 0}.site-navigation details>summary::after{content:' +';font-weight:600}.site-navigation details[open]>summary::after{content:' −'}.site-navigation .service-menu{position:absolute;z-index:20;top:100%;left:0;right:0;background:var(--bg);border:1px solid var(--line);padding:32px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;box-shadow:0 16px 32px #0002}.site-navigation .service-menu a{display:block;padding:8px 0;line-height:1.4}.site-navigation .service-menu .menu-heading{font-weight:600;border-bottom:1px solid var(--line);padding-bottom:12px}.site-navigation{flex-wrap:wrap}.inner-heading{padding-top:48px}.article>h2{border-top:1px solid var(--line);padding-top:32px}.article>img{max-height:480px}.portfolio-body{max-width:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.portfolio-body>img,.portfolio-body>a:has(img){width:100%;margin:0}.portfolio-body img{width:100%;height:360px;object-fit:contain;background:white}.portfolio-body>p,.portfolio-body>h2,.portfolio-body>h3{grid-column:1/-1}
@media(max-width:900px){.content-card-grid,.content-gallery,.content-link-grid,.portfolio-body{grid-template-columns:repeat(2,minmax(0,1fr))}.site-navigation .service-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.contact-strip{gap:8px 20px}}
@media(max-width:700px){.content-card-grid,.content-link-grid{grid-template-columns:1fr}.content-gallery,.portfolio-body{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.content-gallery img,.portfolio-body img{height:220px}.site-navigation .service-menu{position:static;box-shadow:none;grid-template-columns:1fr;border:0;padding:8px 16px}.site-navigation details{width:100%}.article td,.article th{padding:12px;overflow-wrap:anywhere}.contact-strip{font-size:14px}.inner-heading{padding-top:32px}.content-card-grid{gap:24px}}

.article.portfolio-body{max-width:none}.portfolio-body>.content-gallery{grid-column:1/-1;width:100%}.portfolio-body>a{min-width:0}.content-gallery a{display:block;min-width:0}.content-gallery img{height:auto;aspect-ratio:3/4;object-fit:contain}
.site-navigation .service-menu{max-height:70vh;overflow:auto}.header .brand{flex-shrink:0}.content-gallery a:focus-visible{outline-offset:2px}
.content-card>p{margin:0;max-width:none}.content-card img{max-height:none}.content-card>p:has(img){margin-bottom:16px}.portfolio-body>p:has(img){grid-column:auto;max-width:none}.portfolio-body>p>a:has(img){display:block}.portfolio-body>p img{height:auto;aspect-ratio:4/3}.article>p:has(>a:has(img)){max-width:none}.article .content-card-grid{max-width:none}
.food .content-link-grid a:hover{color:#fff}
