.projects-layout{display:grid;grid-template-columns:160px minmax(0,1fr);gap:28px;align-items:start}
.projects-page .page-heading{margin-bottom:28px}.projects-nav{display:flex;flex-direction:column;align-items:flex-start;gap:18px;border-top:1px solid #d6ded7;padding-top:20px}
.projects-nav a,.projects-nav strong{font:14px/1.5 Arial,sans-serif}.projects-nav strong{font-weight:700;color:#194a35}.projects-nav a{text-decoration:underline;text-underline-offset:4px}.projects-nav a:hover{text-decoration:none}
.projects-content{min-width:0}.projects-content>h2{font:28px/1.2 Georgia,serif;margin:0 0 24px;letter-spacing:0}.projects-copy{max-width:740px;margin-bottom:28px}.projects-copy p{font-size:16px;line-height:1.65;margin:0 0 18px}
.projects-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,185px),1fr));gap:22px 18px;align-items:start}.project-photo{display:flex;align-items:center;justify-content:center;border:0;background:transparent;padding:0;width:100%;aspect-ratio:4/3}.project-photo img{display:block;width:100%;height:100%;object-fit:contain}.project-photo:hover img{opacity:.9}
.project-photo-viewer{width:min(1200px,calc(100vw - 32px));max-height:94dvh;border:0;padding:42px 20px 18px;background:white}.project-photo-viewer::backdrop{background:#0008}.project-photo-viewer>img{width:100%;height:72dvh;object-fit:contain;display:block}.project-viewer-close{position:absolute;top:8px;right:14px;background:none;border:0;font-size:26px}.project-viewer-controls{display:flex;justify-content:center;align-items:center;gap:20px;margin-top:12px;font-size:14px}
@media(max-width:700px){.projects-layout{grid-template-columns:1fr;gap:28px}.projects-nav{flex-direction:row;flex-wrap:wrap;gap:12px 22px}.projects-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.projects-content>h2{font-size:25px}.project-photo-viewer>img{height:65dvh}}

.projects-page .page-heading h1{font:32px/1.2 Georgia,serif;letter-spacing:0;margin:0}

/* Charity: one image height, natural widths, responsive wrapping. */
.projects-photo-grid.charity-photo-rows{display:flex;flex-wrap:wrap;align-items:flex-start;gap:18px;--charity-height:190px}
.charity-photo-rows .project-photo{display:block;flex:0 0 auto;width:auto;max-width:100%;height:var(--charity-height);aspect-ratio:auto;padding:0;overflow:hidden}
.charity-photo-rows .project-photo img{display:block;width:auto;height:100%;max-width:100%;object-fit:contain}
@media(min-width:1500px){.projects-photo-grid.charity-photo-rows{--charity-height:210px}}
@media(max-width:700px){.projects-photo-grid.charity-photo-rows{--charity-height:140px;gap:14px}}
@media(max-width:380px){.projects-photo-grid.charity-photo-rows{--charity-height:120px}}

/* Justified rows: complete photos and exact full row width. */
.projects-photo-grid.charity-photo-rows{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start}
.charity-photo-rows .project-photo{flex:0 0 auto;max-width:none;aspect-ratio:auto;padding:0;border:0}
.charity-photo-rows .project-photo img{width:100%;height:100%;max-width:none;object-fit:contain}

/* Project overview and compact section navigation. */
.projects-page{padding-top:32px}
.projects-nav a,.projects-nav strong{color:#667069}
.projects-copy{max-width:none}
.project-overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:30px 24px}
.project-overview-card{min-width:0}
.project-overview-image{display:flex;width:100%;height:200px;align-items:center;justify-content:center;background:transparent}
.project-overview-image img{display:block;width:100%;height:100%;object-fit:contain}
.project-overview-card h2{font:20px/1.3 Georgia,serif;letter-spacing:0;margin:12px 0 8px}
.project-overview-card h2 a{text-decoration:underline;text-underline-offset:4px}
.project-overview-card h2 a:hover{text-decoration:none}
.project-overview-card p{font-size:14px;line-height:1.6;color:#667069;margin:0}
@media(max-width:700px){.projects-page{padding-top:26px}.project-overview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px}.project-overview-image{height:160px}.project-overview-card h2{font-size:18px}}
@media(max-width:380px){.project-overview-grid{grid-template-columns:1fr}}

/* Project navigation: divider along the right edge, no line above. */
.projects-nav{border-top:0;border-right:1px solid #d6ded7;padding-top:0;padding-right:20px;padding-bottom:2px}
@media(max-width:700px){.projects-nav{border-right:0;padding-right:0}}

.studio-overview-intro{display:grid;grid-template-columns:180px minmax(0,1fr);gap:28px;margin-bottom:36px;align-items:start}.studio-overview-intro>img{width:100%;height:240px;object-fit:contain}.studio-overview-intro h1{font:28px/1.25 Georgia,serif;letter-spacing:0;margin:0 0 18px}.studio-overview-intro p{font-size:16px;line-height:1.6;margin:0 0 14px}.studio-impressions{padding:0;min-width:0}.studio-impressions .impression-media{min-height:240px}.studio-impressions .impressions-tools h1{font:28px/1.25 Georgia,serif}@media(max-width:700px){.studio-overview-intro{grid-template-columns:1fr;gap:22px}.studio-overview-intro>img{height:200px}.studio-impressions .impression-figure figcaption{flex-wrap:wrap}}

/* Studio profile: a portrait of the practice, followed by a compact project index. */
.studio-profile-intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start;margin-bottom:40px}
.studio-profile .eyebrow{font-size:12px;letter-spacing:.09em;color:#52675b;margin:0 0 22px}
.studio-profile h1{font:500 clamp(34px,3.8vw,58px)/1.1 Georgia,serif;letter-spacing:-.025em;margin:0}
.studio-profile-copy p{font-size:16px;line-height:1.75;margin:0 0 18px;color:#626c65}
.studio-profile-copy p:first-child{font-size:19px;line-height:1.6;color:#252c27}
.studio-profile-copy .studio-profile-signature{font-size:14px;margin:22px 0 12px}
.studio-profile-copy a{font-size:15px}
.studio-profile-photo{margin:0 0 52px}
.studio-profile-photo img{display:block;width:100%;height:auto;max-height:640px;object-fit:contain;object-position:left center}
.studio-profile-photo figcaption{font-size:12px;color:#667069;margin-top:12px}
.studio-project-index{border-top:1px solid #d6ded7;padding-top:28px;display:grid;grid-template-columns:minmax(160px,.7fr) minmax(0,2fr);gap:36px}
.studio-project-index h2{font:24px/1.25 Georgia,serif;margin:0}
.studio-project-links{display:grid;grid-template-columns:1fr 1fr;gap:0 32px}
.studio-project-links>a{display:grid;grid-template-columns:25px minmax(0,1fr) 18px;gap:12px;padding:18px 0;border-bottom:1px solid #d6ded7;text-decoration:none;color:#252c27;min-width:0}
.studio-project-links strong{font-size:16px;font-weight:500;text-decoration:underline;text-underline-offset:4px}
.studio-project-links>a:hover strong{text-decoration:none}
.studio-index-number{font-size:11px;color:#667069;padding-top:4px}
.studio-index-description{display:block;font-size:13px;line-height:1.6;color:#667069;margin-top:8px}
@media(max-width:1000px){.studio-project-index{grid-template-columns:1fr;gap:20px}}
@media(max-width:700px){.studio-profile-intro{grid-template-columns:1fr;gap:28px;margin-bottom:28px}.studio-profile h1{font-size:38px}.studio-profile-copy p{font-size:15px}.studio-profile-copy p:first-child{font-size:18px}.studio-profile-photo{margin-bottom:36px}.studio-project-links{grid-template-columns:1fr}.studio-project-index{padding-top:24px}}

/* Studio overview: three image links per row, matching the supplied reference. */
.studio-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 20px;align-items:start}
.studio-tile{min-width:0}
.studio-tile-image{display:block;width:100%;aspect-ratio:1.28;background:transparent;text-decoration:none}
.studio-tile-image img{display:block;width:100%;height:100%;object-fit:cover}
.studio-tile:first-child .studio-tile-image img{object-fit:contain}
.studio-tile h2{font:400 15px/1.4 Arial,sans-serif;letter-spacing:0;margin:12px 0 7px}
.studio-tile h2 a{text-decoration:underline;text-underline-offset:4px}
.studio-tile h2 a:hover{text-decoration:none}
.studio-tile p{font-size:13px;line-height:1.55;color:#737b75;margin:0;max-width:340px}
@media(max-width:900px){.studio-tiles{gap:32px 16px}.studio-tile-image{aspect-ratio:1.15}}
@media(max-width:700px){.studio-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 16px}}
@media(max-width:420px){.studio-tiles{grid-template-columns:1fr}.studio-tile-image{aspect-ratio:1.4}.studio-tile h2{font-size:16px}}
