/* Project collection and detail pages: static, scoped, shared with the homepage. */
.project-design { --project-forest:#073e26; --project-green:#0b7a33; --project-muted:#607067; color:#183c29; font-family:Roboto,Arial,sans-serif; }
.project-design * { box-sizing:border-box; }
.project-width { width:min(89.2%,1260px); margin-inline:auto; }
.project-design .project-eyebrow { margin:0 0 16px; color:var(--project-green); font:700 12px/1.5 Roboto,Arial,sans-serif; letter-spacing:2px; text-transform:uppercase; }
.project-design h1,.project-design h2,.project-design h3 { padding:0; color:var(--project-forest); font-family:Poppins,Arial,sans-serif; }
.project-design a:focus-visible { outline:3px solid #2b9a55; outline-offset:5px; }
.selected-projects { padding:88px 0; background:#fff; scroll-margin-top:110px; }
.project-section-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:48px; margin-bottom:36px; }
.project-design .project-section-heading h2 { margin:0; font-size:clamp(34px,4vw,54px); font-weight:600; line-height:1.12; letter-spacing:-1.8px; }
.project-heading-aside { max-width:380px; }
.project-design .project-heading-aside p { margin:0 0 16px; font:400 17px/1.7 Roboto,Arial,sans-serif; color:var(--project-muted); }
.project-text-link { display:inline-flex; align-items:center; gap:18px; color:var(--project-green); font:500 14px/1.5 Roboto,Arial,sans-serif; }
.project-text-link:hover { color:var(--project-forest); text-decoration:underline; }
.project-card-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.project-card { display:flex; flex-direction:column; min-width:0; border:1px solid #dce5de; border-radius:14px; background:#fff; overflow:hidden; text-decoration:none; color:var(--project-forest); transition:box-shadow .25s,transform .25s; }
.project-card:hover { color:var(--project-forest); box-shadow:0 16px 40px #163f2515; transform:translateY(-4px); }
.project-card-photo { position:relative; aspect-ratio:1.65; overflow:hidden; background:#e6ebe6; }
.project-card-photo img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .6s; }
.project-card:hover img { transform:scale(1.035); }
.project-card-sector { position:absolute; top:20px; left:20px; padding:7px 13px; border:1px solid #ffffff88; border-radius:4px; background:#fffef5f2; color:var(--project-forest); font:500 11px/1.4 Roboto,Arial,sans-serif; letter-spacing:1.1px; text-transform:uppercase; }
.project-card-copy { display:flex; flex-direction:column; flex:1; padding:28px 30px; }
.project-card-topline { display:flex; justify-content:space-between; gap:20px; color:#56715e; font:500 12px/1.5 Roboto,Arial,sans-serif; margin-bottom:14px; }
.project-card-topline span:last-child { color:#8ba291; font-variant-numeric:tabular-nums; }
.project-design .project-card h3 { margin:0 0 13px; font-size:clamp(23px,2.3vw,31px); line-height:1.25; font-weight:500; letter-spacing:-.7px; }
.project-design .project-card p { margin:0 0 28px; color:var(--project-muted); font:400 16px/1.7 Roboto,Arial,sans-serif; }
.project-card-bottom { display:flex; justify-content:space-between; align-items:center; margin-top:auto; border-top:1px solid #e1e8e1; padding-top:20px; font:500 14px/1.5 Roboto,Arial,sans-serif; }
.project-arrow { display:grid; place-items:center; width:40px; height:40px; border:1px solid #b9cebf; border-radius:50%; color:var(--project-green); font-size:23px; transition:background .2s,color .2s; }
.project-card:hover .project-arrow { background:var(--project-forest); color:#fff; border-color:var(--project-forest); }
.project-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:10px; padding-block:25px; color:#75847b; font:400 13px/1.6 Roboto,Arial,sans-serif; }
.project-breadcrumb a { color:#4c6755; }
.project-breadcrumb a:hover { text-decoration:underline; }
.project-page-heading { background:#edf3eb; border-bottom:1px solid #dce5d9; padding:40px 0 54px; }
.project-page-heading .project-breadcrumb { padding-top:0; margin-bottom:30px; }
.project-page-heading .project-section-heading { margin:0; }
.project-design .project-page-heading h1 { margin:0; font-size:clamp(44px,5.2vw,72px); font-weight:600; line-height:1.07; letter-spacing:-2.6px; }
.project-page-heading h1 span { color:var(--project-green); }
.project-collection { padding:58px 0 80px; }
.project-collection-label { display:flex; justify-content:space-between; align-items:center; margin:0 0 25px; padding-bottom:20px; border-bottom:1px solid #dce5de; gap:20px; }
.project-design .project-collection-label h2 { margin:0; font:500 20px/1.5 Poppins,Arial,sans-serif; }
.project-collection-label > span { color:#66776c; font-size:13px; }
.project-enquiry-band { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:38px 42px; border-radius:12px; background:var(--project-forest); color:#fff; margin-top:40px; }
.project-design .project-enquiry-band h2 { margin:0 0 9px; color:#fff; font-size:28px; font-weight:500; letter-spacing:-.5px; }
.project-design .project-enquiry-band p { margin:0; color:#c3d8ca; font:400 16px/1.6 Roboto,Arial,sans-serif; }
.project-button { display:inline-flex; align-items:center; justify-content:center; gap:22px; flex-shrink:0; padding:15px 23px; min-height:48px; border-radius:5px; background:var(--project-green); color:#fff; font:500 14px/1.5 Roboto,Arial,sans-serif; }
.project-button:hover { background:var(--project-forest); color:#fff; }
.project-enquiry-band .project-button { background:#fff; color:var(--project-forest); }
.project-enquiry-band .project-button:hover { background:#daeddf; }
.project-detail { padding-bottom:80px; }
.project-detail-hero { display:grid; grid-template-columns:.9fr 1.1fr; border-radius:16px; overflow:hidden; background:var(--project-forest); }
.project-detail-title { min-width:0; padding:46px 40px; display:flex; flex-direction:column; justify-content:center; }
.project-detail-title .project-eyebrow { color:#bbd8c5; }
.project-design .project-detail-title h1 { color:#fff; font-size:clamp(34px,3.8vw,54px); font-weight:500; line-height:1.12; letter-spacing:-1.7px; margin:0 0 25px; }
.project-detail-title > p:not(.project-eyebrow) { color:#cee1d5; font:400 18px/1.6 Roboto,Arial,sans-serif; margin:0; }
.project-detail-image { margin:0; min-width:0; min-height:430px; height:430px; }
.project-detail-image img { width:100%; height:100%; display:block; object-fit:cover; }
.project-design .project-photo-note { margin:12px 0 0; color:#7a877f; font:400 11px/1.5 Roboto,Arial,sans-serif; }
.project-facts { display:grid; grid-template-columns:1.25fr 1fr 1fr; margin:32px 0 0; border-block:1px solid #dce5de; padding:23px 0; }
.project-facts > div { padding:0 28px; border-right:1px solid #dce5de; }
.project-facts > div:first-child { padding-left:0; }
.project-facts > div:last-child { border:0; }
.project-facts dt { color:#758078; font:400 12px/1.5 Roboto,Arial,sans-serif; margin-bottom:7px; }
.project-facts dd { color:var(--project-forest); font:500 16px/1.5 Roboto,Arial,sans-serif; margin:0; }
.project-detail-body { display:grid; grid-template-columns:1.35fr .65fr; align-items:start; gap:70px; padding-block:60px; }
.project-design .project-detail-body h2 { margin:0 0 20px; font:500 32px/1.25 Poppins,Arial,sans-serif; letter-spacing:-.8px; }
.project-design .project-overview { margin:0 0 38px; font:400 18px/1.8 Roboto,Arial,sans-serif; color:#5c6b62; }
.project-scope { list-style:none; padding:0; margin:0; }
.project-scope li { display:grid; grid-template-columns:35px 1fr; gap:15px; padding:22px 0; border-bottom:1px solid #dce5de; }
.project-scope li > span { color:#7a9a83; font:400 13px/1.5 Roboto,Arial,sans-serif; padding-top:5px; }
.project-design .project-scope h3 { margin:0 0 5px; font:500 19px/1.5 Poppins,Arial,sans-serif; }
.project-design .project-scope p { margin:0; font:400 16px/1.65 Roboto,Arial,sans-serif; color:var(--project-muted); }
.project-contact-card { padding:32px; border:1px solid #dce5de; border-radius:12px; background:#f1f5ef; }
.project-design .project-contact-card h2 { font-size:26px; }
.project-design .project-contact-card p:not(.project-eyebrow) { font:400 16px/1.7 Roboto,Arial,sans-serif; color:var(--project-muted); margin:0 0 24px; }
.project-contact-card .project-button { width:100%; padding-inline:16px; }
.project-contact-card > a:last-child { display:block; color:#2f6040; margin-top:20px; font-size:14px; }
.project-next { border-top:1px solid #dce5de; padding-top:32px; display:grid; grid-template-columns:180px 1fr auto; align-items:center; gap:30px; color:var(--project-forest); }
.project-next img { width:180px; height:115px; object-fit:cover; border-radius:8px; }
.project-next small { color:#61816a; display:block; font:500 11px/1.6 Roboto,Arial,sans-serif; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:9px; }
.project-next strong { font:500 26px/1.3 Poppins,Arial,sans-serif; }
.project-next:hover { color:var(--project-green); }
@media(max-width:1000px) { .project-detail-title { padding:32px; } .project-detail-body { gap:35px; grid-template-columns:1.2fr .8fr; } .project-contact-card { padding:25px; } }
@media(max-width:850px) {
 .selected-projects { padding-block:60px; }
 .project-section-heading { gap:30px; }
 .project-heading-aside { max-width:300px; }
 .project-card-grid { gap:20px; }
 .project-card-copy { padding:24px; }
 .project-detail-hero { grid-template-columns:1fr; }
 .project-detail-title { padding:40px; }
 .project-detail-image { min-height:0; height:380px; }
 .project-detail-image img { object-position:center 45%; }
 .project-detail-body { grid-template-columns:1fr; gap:32px; }
 .project-contact-card { max-width:none; }
 .project-enquiry-band { padding:30px; }
}
@media(max-width:600px) {
 .project-section-heading { display:block; }
 .project-heading-aside { max-width:none; margin-top:22px; }
 .project-card-grid { grid-template-columns:1fr; gap:24px; }
 .project-design .project-card h3 { font-size:26px; }
 .project-card-copy { padding:24px; }
 .project-page-heading { padding:22px 0 36px; }
 .project-design .project-page-heading h1 { font-size:44px; letter-spacing:-1.8px; }
 .project-collection { padding-block:36px 55px; }
 .project-collection-label { align-items:start; }
 .project-collection-label > span { font-size:12px; }
 .project-enquiry-band { display:block; padding:28px 24px; }
 .project-enquiry-band .project-button { margin-top:24px; }
 .project-detail-title { padding:30px 25px; }
 .project-design .project-detail-title h1 { font-size:clamp(32px,9.7vw,38px); }
 .project-detail-image { height:280px; }
 .project-facts { grid-template-columns:1fr; gap:18px; }
 .project-facts > div { padding:0; border:0; }
 .project-facts dt { margin-bottom:3px; }
 .project-detail-body { padding-block:40px; }
 .project-next { grid-template-columns:85px 1fr; gap:18px; }
 .project-next img { width:85px; height:100px; }
 .project-next strong { font-size:20px; }
 .project-next .project-arrow { display:none; }
 .project-detail { padding-bottom:55px; }
}
@media(prefers-reduced-motion:reduce) { .project-design * { transition:none !important; animation:none !important; } }
