/* Business priorities: containers, precision processes, fabrication, development, materials. */
.brand, .brand img { width:250px; height:104px; }
.header-inner { height:108px; gap:24px; }
.site-header nav { gap:22px; }
.footer-brand, .footer-brand img { width:250px; height:104px; }
.footer-brand { margin-left:0; }
.container-hero h1 { font-size:clamp(50px,5vw,72px); }
.container-hero .hero-image { object-position:50% 55%; }
.container-hero .hero-image-caption>span { font-size:32px; }
.business-nav { border-bottom:1px solid var(--line); background:#fff; }
.business-nav-inner { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:25px 0; }
.business-nav a { display:flex; align-items:flex-start; gap:12px; font-size:14px; font-weight:600; line-height:1.5; padding:0 20px; border-right:1px solid var(--line); }
.business-nav a:first-child { padding-left:0; }
.business-nav a:last-child { border:0; padding-right:0; }
.business-nav a>span { font-size:11px; color:#a74600; margin-top:3px; }
.business-nav b { color:#a74600; margin-left:auto; font-size:18px; font-weight:400; }
.business-nav a:hover { color:#a74600; }
.service-feature { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:70px; align-items:center; }
.service-copy>.lead { font-size:25px; line-height:1.45; margin-bottom:23px; }
.service-copy>p:not(.lead), .material-intro>p { font-size:16px; line-height:1.8; }
.service-section figure { margin:0; min-width:0; }
.service-section figcaption { font-size:13px; color:#64717a; line-height:1.6; margin-top:10px; }
.container-collage>figure>img { width:100%; aspect-ratio:1.5; object-fit:cover; }
.container-detail-photos { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:23px; }
.container-detail-photos img { width:100%; aspect-ratio:1.5; object-fit:cover; }
.service-points { margin:29px 0; border-top:1px solid var(--line); }
.service-points>div { display:flex; gap:18px; padding:21px 0; border-bottom:1px solid var(--line); }
.service-points>div>span { color:#a74600; font-size:12px; padding-top:3px; }
.service-points h3 { font-size:21px; line-height:1.2; letter-spacing:-.025em; margin-bottom:9px; font-weight:500; }
.service-points p { font-size:15px; line-height:1.7; }
.service-copy>.button { margin-top:6px; max-width:100%; }
.process-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; }
.process-card { min-width:0; background:#ffffff06; border:1px solid #ffffff24; }
.process-card>img { width:100%; aspect-ratio:1.6; object-fit:cover; }
.process-card-copy { padding:30px; }
.process-card .eyebrow { font-size:12px; color:var(--green); }
.process-card h3 { font-size:31px; margin:13px 0 18px; }
.process-card p:not(.eyebrow) { color:#bcc8ce; font-size:16px; line-height:1.75; }
.process-stats { margin:28px 0 24px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; padding:22px 0; border-top:1px solid #ffffff25; border-bottom:1px solid #ffffff25; }
.process-stats>div { min-width:0; }
.process-stats dt { font-size:26px; letter-spacing:-.035em; color:#fff; line-height:1.3; }
.process-stats dd { margin:7px 0 0; font-size:13px; line-height:1.5; color:#bdc9ce; }
.process-card .check-list { margin:24px 0; display:block; }
.process-card .check-list li { padding:13px 0 13px 22px; }
.process-card .process-note { font-size:14px!important; line-height:1.75; }
.heavy-business { background:var(--paper); }
.twin-photos { display:grid; grid-template-columns:1fr 1fr; gap:18px; align-items:start; }
.twin-photos img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.service-list { list-style:none; margin:28px 0 30px; padding:0; border-top:1px solid #d2d9d4; }
.service-list li { position:relative; padding:16px 0 16px 24px; border-bottom:1px solid #d2d9d4; font-size:16px; line-height:1.6; }
.service-list li:before { content:'+'; position:absolute; left:0; color:#23784a; }
.development-photo img { width:100%; aspect-ratio:1.1; object-fit:cover; object-position:60% center; }
.material-sales { padding:100px 0; }
.material-sales .service-feature { align-items:start; }
.material-intro img { width:100%; aspect-ratio:1.6; object-fit:cover; }
.material-intro>p { margin-top:24px; color:#52675b; }
.material-enquiry-note { font-size:15px; line-height:1.75; margin:24px 0; color:#52675b; }
.service-section .button { text-wrap:balance; }
@media(max-width:1150px) {
  .service-feature { gap:44px; }
  .business-nav a { padding:0 13px; gap:9px; }
  .process-card-copy { padding:25px; }
  .process-stats dt { font-size:24px; }
}
@media(max-width:1024px) {
  .header-inner { height:88px; }
  .brand, .brand img { width:210px; height:87px; }
  .service-feature { gap:34px; }
  .service-copy>.lead { font-size:23px; }
  .process-pair { gap:22px; }
  .process-card-copy { padding:23px; }
  .process-stats { gap:10px; }
  .business-nav b { display:none; }
}
@media(min-width:721px) and (max-width:900px) {
  .container-hero h1 { font-size:clamp(43px,5.9vw,52px); }
  .service-feature { grid-template-columns:1fr 1fr; gap:30px; }
  .container-collage>figure>img { aspect-ratio:1.1; }
  .service-copy>.lead { font-size:22px; }
  .process-card-copy { padding:21px; }
  .process-stats { grid-template-columns:1fr; gap:14px; }
  .process-stats>div { display:flex; align-items:center; gap:15px; }
  .process-stats dt { width:100px; flex:0 0 auto; }
  .process-stats dd { margin:0; }
  .twin-photos { gap:12px; }
  .twin-photos img { aspect-ratio:1/2; }
  .service-copy>.button { font-size:16px; gap:16px; }
}
@media(max-width:720px) {
  html { scroll-padding-top:92px; }
  .header-inner { height:80px; gap:8px; }
  .brand, .brand img { width:190px; height:79px; }
  .site-header nav { max-height:calc(100dvh - 80px); }
  #project-enquiry { scroll-margin-top:94px; }
  .container-hero h1 { font-size:clamp(39px,10.7vw,62px); line-height:1.06; }
  .container-hero .hero-image-caption>span { font-size:28px; }
  .container-hero .photo-tag { font-size:9px; letter-spacing:.055em; }
  .business-nav-inner { display:flex; gap:0; overflow-x:auto; padding:18px 0; scrollbar-width:thin; scrollbar-color:#aab5b0 transparent; }
  .business-nav a { flex:0 0 185px; min-height:48px; padding:0 15px; font-size:14px; }
  .business-nav a:first-child { padding-left:0; }
  .business-nav a:last-child { padding-right:16px; }
  .service-feature { grid-template-columns:minmax(0,1fr); gap:30px; }
  .service-section .section-heading { margin-bottom:29px; }
  .service-section h2 { font-size:clamp(32px,9.1vw,45px); }
  .service-copy>.lead { font-size:23px; margin-bottom:18px; }
  .service-copy>p:not(.lead) { font-size:16px; line-height:1.8; }
  .container-detail-photos { gap:14px; margin-top:18px; }
  .container-collage>figure>img { aspect-ratio:4/3; }
  .container-detail-photos img { aspect-ratio:4/3; }
  .service-section figcaption { font-size:13px; }
  .service-points { margin:24px 0; }
  .service-points h3 { font-size:21px; }
  .service-points>div { gap:14px; padding:20px 0; }
  .service-points p { font-size:16px; }
  .service-copy>.button, .material-sales .button { width:100%; font-size:16px; justify-content:space-between; gap:18px; padding:16px 18px; }
  .process-pair { grid-template-columns:1fr; gap:24px; }
  .process-card>img { aspect-ratio:4/3; }
  .process-card-copy { padding:24px 20px; }
  .process-card h3 { font-size:29px; }
  .process-stats { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
  .process-stats dt { font-size:24px; }
  .process-stats dd { font-size:13px; }
  .capability-bottom .button { font-size:16px; gap:16px; padding:16px 18px; }
  .reverse-feature .twin-photos { grid-row:1; }
  .twin-photos { gap:14px; }
  .twin-photos img { aspect-ratio:3/4; }
  .development-photo img { aspect-ratio:4/3; }
  .material-sales { padding:54px 0; }
  .material-intro img { aspect-ratio:4/3; }
  .material-intro>p { margin-top:18px; }
  .material-sales .service-feature { gap:28px; }
  .footer-brand, .footer-brand img { width:240px; height:100px; }
}
@media(max-width:360px) {
  .brand, .brand img { width:180px; height:75px; }
  .container-hero h1 { font-size:38px; }
  .process-stats { grid-template-columns:1fr; }
  .process-stats>div { display:flex; align-items:center; gap:18px; }
  .process-stats dt { width:100px; flex:0 0 auto; }
  .process-stats dd { margin:0; }
}
@media print { .business-nav { display:none; } }

/* Fluid section introductions: labels above titles, using the available width. */
:is(.service-section, .about, .work, .quality) > .container {
  --section-gutter:clamp(24px, 3.25vw, 96px);
  width:calc(100% - var(--section-gutter) * 2);
  max-width:none;
}
.section-heading {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:clamp(16px, 1.4vw, 26px);
  margin-bottom:clamp(32px, 3vw, 64px);
}
.section-heading > .eyebrow { padding-top:0; margin:0; }
.section-heading > div { width:100%; min-width:0; }
.section-heading h2 {
  width:100%;
  max-width:none;
  margin:0;
  font-size:clamp(34px, 3.6vw, 80px);
  line-height:1.12;
  text-wrap:balance;
}
.section-heading .heading-description {
  width:100%;
  max-width:none;
  margin-top:clamp(16px, 1.3vw, 25px);
  font-size:clamp(16px, calc(16px + .25vw), 20px);
  line-height:1.65;
}
@media(min-width:901px) {
  .service-feature { gap:clamp(34px, 4vw, 96px); }
  .process-pair { gap:clamp(24px, 2vw, 48px); }
  .service-copy > p:not(.lead),
  .service-points p,
  .about-copy > p:not(.lead),
  .quality-intro > p:not(.lead),
  .material-intro > p { max-width:72ch; }
}
@media(max-width:720px) {
  :is(.service-section, .about, .work, .quality) > .container { --section-gutter:20px; }
  .section-heading { gap:16px; margin-bottom:28px; }
  .section-heading > .eyebrow { margin-bottom:0; }
}
@media(max-width:360px) {
  :is(.service-section, .about, .work, .quality) > .container { --section-gutter:16px; }
}
