/* Services compositions extend the shared design system without changing Home or About. */
.services-masthead { padding-bottom:var(--space-3); }
.services-hero { padding:var(--space-4) 0 0; }
.services-hero-heading { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:end;padding-bottom:var(--space-5); }
.services-hero .eyebrow,.service-specialized .eyebrow { color:#9dca7b; }
.services-hero h1 { font-size:clamp(2.8rem,5.3vw,5rem);line-height:1.08;margin-top:var(--space-2); }
.services-hero-intro { max-width:33rem;padding-bottom:.2rem; }
.services-hero-intro>p:first-child { font-size:1.25rem; }
.services-hero-intro .button { margin-top:var(--space-3); }
.services-hero-image { margin-block:0; }
.services-concept-crop { position:relative;overflow:hidden; }
.services-concept-crop img { position:absolute;max-width:none;height:auto; }
/* Clip photographic regions from the unchanged, supplied Services concept. */
.services-concept-hero { aspect-ratio:500/185; }
.services-concept-hero img { width:172.8%;left:-72%;top:-29.72973%; }
.services-hero-image figcaption { padding-block:.5rem;color:var(--on-dark); }
.service-detail { scroll-margin-top:var(--space-3); }
.services-index { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--border);padding-block:var(--space-3); }
.services-index a { display:flex;align-items:center;gap:1rem;min-height:64px;padding:.5rem 1.4rem;border-right:1px solid var(--border);font:500 1.15rem/1.3 var(--display);text-transform:uppercase;color:var(--green); }
.services-index a:first-child { padding-left:0; }
.services-index a:last-child { border-right:0; }
.services-index a>span:first-child { color:var(--muted);font-size:.9375rem; }
.services-index a>span:last-child { margin-left:auto; }
.services-index a:hover { text-decoration:underline;text-underline-offset:5px; }
.service-new,.service-next { padding-block:clamp(2.5rem,5vw,4.5rem); }
.service-editorial { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:start; }
.service-detail h2,.service-next h2 { margin-top:.8rem; }
.service-building-image { margin:var(--space-4) 0 0; }
.service-building-image img { width:100%;aspect-ratio:3.2;object-fit:cover;object-position:center 50%; }
.service-detail figcaption,.services-hero figcaption { font-size:.8125rem; }
.service-detail figcaption { color:var(--muted);padding-top:.5rem; }
.service-scope-strip { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin:var(--space-3) 0 0; }
.service-scope-strip>div { border-top:1px solid var(--border);padding-top:var(--space-2); }
.service-scope-strip dt { font:500 1.125rem/1.3 var(--display);color:var(--green);text-transform:uppercase; }
.service-scope-strip dd { margin:.5rem 0 0;font-size:1rem; }
.service-remodel { background:var(--surface);padding-block:clamp(2.5rem,5vw,4.5rem); }
.service-remodel-grid { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);align-items:center; }
.service-remodel-image { margin:0;min-width:0; }
.services-concept-remodel { aspect-ratio:505/224; }
.services-concept-remodel img { width:171.089109%;left:-70.693069%;top:-156.25%; }
.service-remodel-copy>p:not(.eyebrow) { margin-top:var(--space-2); }
.service-ruled-list { list-style:none;padding:0;margin:var(--space-3) 0 .5rem; }
.service-ruled-list li { border-top:1px solid var(--border);padding:.7rem 0;font:400 1.125rem/1.4 var(--display);text-transform:uppercase;color:var(--green); }
.service-specialized { padding-block:clamp(2.5rem,5vw,4.5rem); }
.service-technical-grid { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5);margin-top:var(--space-5);border-top:1px solid var(--border-dark);padding-top:var(--space-4); }
.service-technical-grid>div+div { border-left:1px solid var(--border-dark);padding-left:var(--space-5); }
.service-technical-grid h3 { margin-top:var(--space-3);font-size:1.4rem; }
.service-technical-grid h3+p { margin-top:.5rem;max-width:31rem; }
.service-coordination { border-top:1px solid var(--border-dark);margin-top:var(--space-4); }
.service-next { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5); }
.service-next .button { margin-top:var(--space-3); }
@media(max-width:900px) {
  .services-hero-heading,.service-editorial,.service-remodel-grid,.service-next { gap:var(--space-4); }
  .services-index a { font-size:1rem;padding-inline:.8rem;gap:.6rem; }
  .service-remodel-grid { grid-template-columns:.85fr 1.15fr; }
  /* Use the same interior photograph at its natural height, without adjacent concept text. */
  .services-concept-remodel { aspect-ratio:310/224; }
  .services-concept-remodel img { width:278.709677%;left:-114.516129%;top:-156.25%; }
  .service-technical-grid { gap:var(--space-4); }
  .service-technical-grid>div+div { padding-left:var(--space-4); }
}
@media(max-width:650px) {
  .services-hero-heading,.service-editorial,.service-remodel-grid,.service-next { grid-template-columns:1fr; }
  .services-hero { padding-top:var(--space-3); }
  .services-hero h1 { font-size:clamp(2.8rem,10vw,4rem); }
  .services-hero-intro>p:first-child { font-size:1.125rem; }
  .services-hero-heading { padding-bottom:var(--space-4); }
  .services-concept-hero { aspect-ratio:500/288; }
  .services-concept-hero img { top:-19.097222%; }
  .services-index { grid-template-columns:1fr;padding-block:var(--space-2); }
  .services-index a:nth-child(n) { border-right:0;border-bottom:1px solid var(--border);padding:.75rem 0;min-height:60px;font-size:1.125rem; }
  .services-index a:last-child { border-bottom:0; }
  .services-index br { display:none; }
  .service-building-image img { aspect-ratio:1.8; }
  .service-scope-strip { grid-template-columns:1fr;gap:var(--space-2); }
  .service-remodel-copy { grid-row:1; }
  .services-concept-remodel { aspect-ratio:505/224; }
  .services-concept-remodel img { width:171.089109%;left:-70.693069%;top:-156.25%; }
  .service-technical-grid { grid-template-columns:1fr;margin-top:var(--space-4); }
  .service-technical-grid>div+div { border-left:0;border-top:1px solid var(--border-dark);padding:var(--space-4) 0 0; }
  .service-next .button { text-align:left;justify-content:flex-start;letter-spacing:.035em; }
}
