/* A clearer wordmark for the compact header; the full logo remains on About. */
.brand::before { content: ''; display: block; width: 4px; height: 42px; background: var(--accent); flex: 0 0 4px; }
.brand .brand-wordmark { display: block; letter-spacing: 0; }
.brand-wordmark strong { display: block; font-size: 1.55rem; line-height: 1; letter-spacing: .055em; font-weight: 850; }
.brand .brand-wordmark small { font-size: .63rem; letter-spacing: .23em; margin-top: 6px; font-weight: 650; color: #c7cacb; }
.nav { gap: 22px; }
.navlinks { gap: 22px; }
.page-hero .wrap { min-height: 420px; padding-top: 58px; padding-bottom: 62px; }
.intro, .projects, .service-index, .related, .contact-page, .project-gallery { padding-top: 76px; padding-bottom: 76px; }
.split, .project-band { padding-top: 76px; padding-bottom: 76px; }
.scope { padding-bottom: 76px; }
.hero { min-height: 0; }
.hero-grid { grid-template-columns: .95fr 1.05fr; }
.hero-copy { padding-top: 76px; padding-bottom: 76px; padding-right: 40px; }
.hero h1 { font-size: clamp(3.4rem, 6.1vw, 6.1rem); margin: 20px 0 24px; }
.hero p { margin-bottom: 28px; font-size: 1.08rem; }
.hero-visual { min-height: 520px; margin: 24px 24px 24px 0; background: #292d30; }
.hero-project-photo { width: 100%; height: 100%; object-fit: cover; object-position: 52% 50%; position: absolute; inset: 0; }
.hero-photo-caption { position: absolute; left: 22px; bottom: 22px; right: 22px; padding: 18px 22px; max-width: 330px; background: #151719; color: #fff; border-left: 4px solid var(--accent); }
.hero-photo-caption b { display: block; font-size: 1rem; }
.hero-photo-caption span { display: block; color: #c7cacb; font-size: .82rem; margin-top: 4px; }
.hero-stats .stat { padding: 20px 28px; }
body > main > section { padding-top: 76px; padding-bottom: 76px; }
.service { min-height: 230px; padding: 28px; padding-bottom: 62px; }
.service h3 { margin-top: 26px; }
.service:after { left: 28px; bottom: 24px; }
.step { min-height: 190px; padding: 26px; }
.step b { font-size: 2.1rem; }
.step h3 { margin-top: 28px; }
.recent-work { background: #e9eae6; }
.recent-work .wrap { display: grid; grid-template-columns: 1.08fr .92fr; gap: 64px; align-items: center; }
.work-image { margin: 0; }
.work-image img { width: 100%; height: 510px; object-fit: cover; object-position: center 62%; }
.work-image figcaption { font-size: .8rem; color: #5d6366; padding-top: 12px; }
.work-copy h2, .case-head h2 { font-size: clamp(2.3rem, 4.5vw, 4rem); line-height: 1; letter-spacing: -.045em; margin: 12px 0 26px; }
.work-row { display: block; text-decoration: none; padding: 22px 0; border-top: 1px solid #bfc2bf; }
.work-row h3 { font-size: 1.22rem; margin: 0 0 8px; }
.work-row p { color: #565d60; font-size: .95rem; margin: 0; }
.work-row span { display: inline-block; font-size: .83rem; color: #a33c0b; font-weight: 750; margin-top: 10px; }
.work-row:hover h3 { text-decoration: underline; text-underline-offset: 4px; }
.case-studies { background: #fff; }
.case-head { max-width: 730px; margin-bottom: 38px; }
.case-head p { color: #686d70; }
.case-study { display: grid; grid-template-columns: .72fr 1.28fr; gap: 64px; padding: 38px 0; border-top: 1px solid var(--line); scroll-margin-top: 100px; }
.case-study h3 { margin: 8px 0; font-size: clamp(1.6rem, 3vw, 2.4rem); line-height: 1.1; letter-spacing: -.025em; }
.case-study p { margin: 0 0 18px; color: #5d6366; }
.case-study ul { margin: 0 0 20px; padding-left: 20px; color: #5d6366; }
.case-study li { margin: 7px 0; }
.case-study a { font-weight: 700; text-underline-offset: 4px; }
@media (max-width: 1050px) and (min-width: 901px) { .hero-copy { padding-right: 25px; } .navlinks { gap: 16px; } }
@media (max-width: 900px) {
  .hero-grid, .recent-work .wrap { grid-template-columns: 1fr; }
  .hero-copy { padding: 62px 28px 42px; }
  .hero h1 { max-width: 660px; font-size: clamp(3.2rem, 9vw, 5.4rem); }
  .hero-visual { min-height: 430px; margin: 0 24px 24px; }
  .hero-project-photo { object-position: 50% 55%; }
  .recent-work .wrap { gap: 34px; }
  .work-image img { height: 380px; }
  .case-study { gap: 30px; }
}
@media (max-width: 600px) {
  .brand-wordmark strong { font-size: 1.35rem; }
  .brand::before { height: 38px; }
  .brand .brand-wordmark small { font-size: .59rem; }
  .page-hero .wrap { min-height: 350px; padding-top: 38px; padding-bottom: 48px; }
  .hero-copy { padding: 50px 20px 36px; }
  .hero h1 { font-size: clamp(3.1rem, 15vw, 4.6rem); }
  .hero-visual { min-height: 340px; margin: 0 14px 14px; }
  .hero-photo-caption { left: 14px; bottom: 14px; right: 14px; padding: 14px 16px; }
  .hero-stats .stat { padding: 16px 22px; }
  body > main > section, .intro, .projects, .service-index, .related, .contact-page, .project-gallery, .split, .project-band { padding-top: 56px; padding-bottom: 56px; }
  .scope { padding-bottom: 56px; }
  .case-study { grid-template-columns: 1fr; gap: 16px; padding: 30px 0; }
  .work-image img { height: 350px; }
  .case-head { margin-bottom: 24px; }
}

/* Verified customer review excerpts, with their original review dates. */
.customer-reviews { background:#171a1a; color:#fff; }
.reviews-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:38px; }
.reviews-heading h2 { margin:10px 0 0; color:#fff; }
.reviews-heading>a { color:#fff; text-underline-offset:5px; }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:36px; }
.customer-review { margin:0; padding-top:22px; border-top:1px solid #555959; display:flex; flex-direction:column; }
.review-stars { color:#ff984f; letter-spacing:3px; font-size:19px; }
.customer-review blockquote { margin:20px 0 26px; flex:1; }
.customer-review blockquote p { color:#fff; font-size:21px; line-height:1.55; margin:0; }
.customer-review figcaption strong,.customer-review figcaption span { display:block; }
.customer-review figcaption span { color:#bfc3c3; font-size:14px; margin-top:5px; }
@media(max-width:750px) { .reviews-heading {align-items:start;flex-direction:column;} .review-grid {grid-template-columns:1fr;gap:30px;} .customer-review blockquote {margin:14px 0 20px;} }

/* Project-manager enquiries and practical service questions. */
.hero h1 {font-size:clamp(3rem,5.2vw,5.1rem);overflow-wrap:normal;}
.enquiry-fields {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:24px 0;}
.enquiry-fields label {display:flex;flex-direction:column;gap:8px;font-size:.9rem;font-weight:700;min-width:0;}
.enquiry-fields label span {font-weight:400;}
.enquiry-fields input,.enquiry-fields select,.enquiry-fields textarea {width:100%;min-width:0;font:inherit;font-size:16px;font-weight:400;line-height:1.45;padding:12px;background:#fff;color:#151719;border:1px solid #92999a;border-radius:0;}
.enquiry-fields input,.enquiry-fields select {min-height:48px;}
.enquiry-fields textarea {resize:vertical;}
.enquiry-wide {grid-column:1/-1;}
.enquiry-help {font-size:.85rem;line-height:1.5;margin:14px 0 0;}
.enquiry-fields [hidden],#project-enquiry[hidden] {display:none;}
#project-enquiry {scroll-margin-top:110px;}
.project-faq {padding:76px 0;}
.project-faq .wrap {max-width:1000px;}
.project-faq h2 {margin:12px 0 28px;}
.project-faq details {border-top:1px solid var(--line);padding:20px 0;}
.project-faq summary {font-size:1.1rem;font-weight:700;min-height:30px;}
.project-faq details p {max-width:780px;margin:18px 0 6px;line-height:1.7;}
.project-faq .button {margin-top:24px;}
@media(max-width:600px){.enquiry-fields{grid-template-columns:1fr;}.enquiry-wide{grid-column:auto;}.project-faq{padding:56px 0;}.hero h1{font-size:clamp(2.8rem,10vw,4.2rem);}}
