/* Compact, consistent content cards across every public listing. */
:root{--card-height:280px;--card-image-height:164px;--card-gap:18px}
.service-grid,.all-services-grid,.work-grid,.portfolio-grid,.blog-grid,.review-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:var(--card-height);gap:var(--card-gap);width:100%;max-width:100%;margin-left:auto;margin-right:auto;align-items:stretch}
.service-card,.all-service-card,.project-card,.work-card,.blog-card,.review-card{min-width:0;width:100%;height:var(--card-height);box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden}
.project-card[hidden],.work-card[hidden]{display:none}
.cms-uploaded{background-image:none!important;display:block;max-width:100%}
.service-card>.service-card-image,.all-service-card>.service-card-image,.service-card>.service-photo,.all-service-card>.service-photo,.project-card>.project-photo,.work-card>.work-photo,.project-card>.work-photo,.blog-card .blog-photo{display:block;width:100%;height:var(--card-image-height);min-height:0;aspect-ratio:auto;object-fit:cover;object-position:center;flex:none;clip-path:none;margin:0}
.blog-card>a{display:block;flex:none;height:var(--card-image-height)}
.service-body,.all-service-copy,.project-caption,.work-caption,.blog-caption{box-sizing:border-box;position:relative;flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;padding:14px 16px}
.all-service-number{display:none;margin:0 0 6px;font:10px/1.2 Arial,sans-serif;color:#8b723e}
.service-body h3,.all-service-copy h2,#portfolio .project-caption h3,.project-caption h3,.work-caption h2,.blog-caption h2{font:500 18px/1.2 Georgia,serif;letter-spacing:-.015em;margin:0 0 7px;overflow-wrap:break-word;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.service-body>p,.all-service-copy>p,#portfolio .project-caption>p,.project-caption>p,.work-caption>p,.blog-caption>p{font:400 12px/1.45 Arial,sans-serif;max-width:none;padding:0;margin:0 0 8px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.service-body>a,.all-service-copy>a{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:28px;margin-top:auto;font:500 11px/1.3 Arial,sans-serif;color:#31523c;text-decoration:none}
.service-body>a span,.all-service-copy>a span{display:grid;place-items:center;width:26px;height:26px;background:#eee2bf;border-radius:50%;flex:none}
.project-caption,.work-caption,.blog-caption{padding-bottom:46px}
#portfolio .project-arrow,.project-arrow,.work-arrow,.blog-arrow{width:30px;height:30px;right:14px;bottom:12px;font-size:17px}
.blog-caption h2{-webkit-line-clamp:2}
.blog-caption>p{font-size:11px;margin-top:5px}
.cms-project-link{margin-top:auto;font-size:11px}
.review-card{padding:20px}
.review-card blockquote{flex:1;font-size:14px;line-height:1.6}
.review-author{flex-wrap:wrap;gap:8px}
.review-author h3{font-size:13px}.review-author p{font-size:11px}
.review-avatar,.review-avatar.cms-uploaded{width:34px;height:34px;aspect-ratio:1;object-fit:cover;flex:none}
.review-stars{font-size:14px}
.service-body>a:focus-visible,.all-service-copy>a:focus-visible,.work-arrow:focus-visible,.project-arrow:focus-visible,.blog-arrow:focus-visible{outline:2px solid #a47d36;outline-offset:3px}
@media(max-width:900px){
 .service-grid,.all-services-grid,.work-grid,.portfolio-grid,.blog-grid,.review-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .work-filters button{font-size:12px;min-height:34px;padding:7px 12px}
}
@media(max-width:600px){
 :root{--card-height:230px;--card-image-height:130px;--card-gap:12px}
 .service-body,.all-service-copy,.project-caption,.work-caption,.blog-caption{padding:12px}
 .service-body h3,.all-service-copy h2,#portfolio .project-caption h3,.project-caption h3,.work-caption h2,.blog-caption h2{font-size:16px;line-height:1.2;-webkit-line-clamp:2;margin-bottom:6px}
 .service-body>p,.all-service-copy>p,#portfolio .project-caption>p,.project-caption>p,.work-caption>p,.blog-caption>p{font-size:11px;line-height:1.4;margin-bottom:6px}
 .service-body>a,.all-service-copy>a{font-size:10px;min-height:28px}
 .service-body>a span,.all-service-copy>a span{width:24px;height:24px}
 .project-caption,.work-caption,.blog-caption{padding-bottom:44px}
 .review-card{padding:14px}.review-card blockquote{font-size:12px;line-height:1.5}
 .review-author h3{font-size:12px}.review-author p{font-size:10px}
 .review-stars{font-size:12px}.review-avatar,.review-avatar.cms-uploaded{width:28px;height:28px}
 .coco-launch .coco-hint{display:none}
}

/* Larger photographs, compact captions, with the same overall card dimensions. */
.service-body,.all-service-copy,.project-caption,.work-caption,.blog-caption{padding:10px 12px}
.service-body h3,.all-service-copy h2,#portfolio .project-caption h3,.project-caption h3,.work-caption h2,.blog-caption h2{font-size:17px;margin-bottom:5px}
.service-body>p,.all-service-copy>p,#portfolio .project-caption>p,.project-caption>p,.work-caption>p,.blog-caption>p{-webkit-line-clamp:1;margin-bottom:5px}
.service-body>a,.all-service-copy>a{min-height:24px}
.service-body>a span,.all-service-copy>a span{width:24px;height:24px}
.project-caption,.work-caption,.blog-caption{padding-right:42px}
#portfolio .project-arrow,.project-arrow,.work-arrow,.blog-arrow{width:28px;height:28px;right:10px;bottom:10px}
.blog-caption h2{-webkit-line-clamp:2}.blog-caption>p{margin-top:0}
@media(max-width:600px){
 .service-body,.all-service-copy,.project-caption,.work-caption,.blog-caption{padding:8px 10px}
 .service-body h3,.all-service-copy h2,#portfolio .project-caption h3,.project-caption h3,.work-caption h2,.blog-caption h2{font-size:15px;line-height:1.2;margin-bottom:4px}
 .service-body>p,.all-service-copy>p,#portfolio .project-caption>p,.project-caption>p,.work-caption>p,.blog-caption>p{font-size:10px;line-height:1.4;margin-bottom:4px}
 .project-caption,.work-caption,.blog-caption{padding-right:38px}
 .service-body>a,.all-service-copy>a{min-height:22px}
 .service-body>a span,.all-service-copy>a span{width:22px;height:22px}
 #portfolio .project-arrow,.project-arrow,.work-arrow,.blog-arrow{width:26px;height:26px;right:8px;bottom:8px}
}

/* Let the available screen width determine the grid, without nested gutters. */
:root{--listing-gutter:clamp(16px,2.5vw,40px);--listing-max:1680px}
.work-content,.work-hero,.services-intro,.all-services-grid,.blog-content:not(.blog-article){width:calc(100% - 2 * var(--listing-gutter));max-width:var(--listing-max);margin-inline:auto;padding-left:0;padding-right:0;box-sizing:border-box}
#services,#portfolio,#testimonials{padding-left:var(--listing-gutter);padding-right:var(--listing-gutter)}
.service-grid,.portfolio-grid,.review-grid{max-width:var(--listing-max)}
.service-heading,.portfolio-heading,.portfolio-tabs,.review-heading{max-width:var(--listing-max);margin-left:auto;margin-right:auto}
.service-heading{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.service-summary{display:none}
.work-filters{gap:8px;padding:18px 0}
.work-consultation-space{height:0}
.project-caption,.work-caption,.blog-caption{justify-content:flex-start}
#portfolio .project-arrow,.project-arrow,.work-arrow,.blog-arrow{top:12px;bottom:auto}
@media(min-width:1440px){
 .service-grid,.all-services-grid,.work-grid,.portfolio-grid,.blog-grid,.review-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:600px){
 :root{--card-gap:12px}
 .work-content,.work-hero,.services-intro,.all-services-grid,.blog-content:not(.blog-article){width:calc(100% - 32px)}
 .work-filters{gap:7px;padding:14px 0}
 .work-filters button{font-size:11px;padding:7px 11px;min-height:32px}
 .work-hero{padding-top:22px;gap:16px}
 .work-intro h1{font-size:clamp(30px,7.5vw,40px);margin-bottom:12px}
 .work-hero-art{aspect-ratio:2.4}
 .service-heading{grid-template-columns:1fr;gap:12px}
 #portfolio .project-arrow,.project-arrow,.work-arrow,.blog-arrow{top:10px;bottom:auto}
}
/* Portfolio and article cards only need a short title-and-metadata caption. */
.project-card>.project-photo,.project-card>.work-photo,.work-card>.work-photo,.blog-card .blog-photo,.blog-card>a{height:calc(var(--card-height) - 78px)}
