/* Services layer: editorial layouts built on the approved global type and color system. */
.services-page main,
.service-detail { overflow: clip; }

.services-intro,
.service-intro {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: clamp(1rem, 1.4vw, 1.25rem);
  padding-block: clamp(4.5rem, 8vw, 8rem);
}

.services-intro > .site-eyebrow,
.service-intro > .site-eyebrow { grid-column: 1 / span 3; margin: .65rem 0 0; color: var(--color-text-muted); }
.service-breadcrumb ol { display: flex; flex-wrap: wrap; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.service-breadcrumb li + li::before { content: "/"; margin-right: .35rem; }
.service-breadcrumb a { text-decoration: none; }
.service-breadcrumb a:is(:hover, :focus-visible) { text-decoration: underline; }
.services-intro > div,
.service-intro > div { grid-column: 4 / span 8; }
.services-intro h1,
.service-intro h1 { max-width: 18ch; margin: 0; font-size: var(--type-page-title); line-height: 1.04; }
.services-intro > div > p,
.service-intro-copy { max-width: 42rem; margin: var(--space-5) 0 0; color: var(--color-text-muted); font-size: var(--type-lede); }

.services-routes { padding-bottom: clamp(5rem, 10vw, 10rem); }
.services-route-list { display: grid; row-gap: clamp(5rem, 8vw, 8rem); }
.services-route { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem) clamp(1rem, 1.4vw, 1.25rem); align-items: center; }
.services-route-media { grid-column: 1 / span 7; display: block; }
.services-route-media picture,
.services-route-media img { display: block; width: 100%; }
.services-route-media img { aspect-ratio: 4 / 3; object-fit: cover; }
.services-route-copy { grid-column: 9 / span 4; }
.services-route-number { margin: 0 0 var(--space-5); color: var(--color-text-muted); font-size: var(--type-small); }
.services-route-copy h2 { margin: 0; font-size: var(--type-section-title); line-height: 1.08; }
.services-route-copy > p:not(.services-route-number) { max-width: 28rem; margin: var(--space-4) 0 0; color: var(--color-text-muted); }
.services-route-copy .site-text-link { margin-top: var(--space-4); }
.services-route:nth-child(even) .services-route-media { grid-column: 6 / span 7; grid-row: 1; }
.services-route:nth-child(even) .services-route-copy { grid-column: 1 / span 4; grid-row: 1; }
.services-route:nth-child(2) .services-route-media img,
.services-route:nth-child(3) .services-route-media img { aspect-ratio: 3 / 2; }
.services-route:nth-child(3) .services-route-media { grid-column: 2 / span 6; }
.services-route:nth-child(3) .services-route-copy { grid-column: 9 / span 4; }
.services-route:nth-child(4) .services-route-media img { aspect-ratio: 16 / 9; }

.services-capabilities { background: var(--color-warm-white); padding-block: clamp(4.5rem, 8vw, 8rem); }
.services-capabilities-grid,
.service-copy-grid,
.service-inquiry-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 1.4vw, 1.25rem); }
.services-capabilities-grid > .site-eyebrow,
.service-copy-grid > .site-eyebrow { grid-column: 1 / span 3; margin: .45rem 0 0; color: var(--color-text-muted); }
.services-capabilities-grid > div { grid-column: 4 / span 8; }
.services-capabilities h2 { max-width: 20ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; }
.services-capabilities ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 var(--space-7); margin: var(--space-7) 0 0; padding: 0; list-style: none; border-top: var(--border-width) solid var(--color-border); }
.services-capabilities li { padding-block: var(--space-4); border-bottom: var(--border-width) solid var(--color-border); }

.service-opening-media { margin-bottom: clamp(5rem, 9vw, 9rem); }
.service-opening-media picture,
.service-opening-media img { display: block; width: 100%; }
.service-opening-media img { aspect-ratio: 16 / 9; object-fit: cover; }
.service-detail--architecture-commercial .service-opening-media { width: min(78vw, 66rem); margin-inline: auto; }
.service-detail--architecture-commercial .service-opening-media img { aspect-ratio: 4 / 5; max-height: 54rem; object-position: center 46%; }
.service-detail--interior-design .service-opening-media { width: min(calc(100% - var(--page-gutter) * 2), 70rem); margin-inline: auto; }
.service-detail--interior-design .service-opening-media img { aspect-ratio: 3 / 2; }

.service-approach { padding-bottom: clamp(5rem, 9vw, 9rem); }
.service-copy-main { grid-column: 4 / span 5; }
.service-copy-main h2,
.service-context-copy h2,
.service-workflow h2 { margin: 0; font-size: var(--type-section-title); line-height: 1.08; }
.service-copy-main > p,
.service-context-copy > p:last-child { max-width: 38rem; margin: var(--space-5) 0 0; color: var(--color-text-muted); }
.service-portfolio-link { margin-top: var(--space-5); }
.service-capability-list { grid-column: 10 / span 3; margin: 0; padding: 0; list-style: none; border-top: var(--border-width) solid var(--color-border); }
.service-capability-list li { padding-block: var(--space-3); border-bottom: var(--border-width) solid var(--color-border); font-size: var(--type-small); }

.service-image-dialogue { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 1.4vw, 1.25rem); align-items: end; padding-bottom: clamp(5rem, 10vw, 10rem); }
.service-image-dialogue figure,
.service-closing-gallery figure,
.service-context figure { margin: 0; }
.service-image-dialogue picture,
.service-image-dialogue img,
.service-closing-gallery picture,
.service-closing-gallery img,
.service-context picture,
.service-context img { display: block; width: 100%; }
.service-image-dialogue-primary { grid-column: 1 / span 8; }
.service-image-dialogue-secondary { grid-column: 10 / span 3; margin-bottom: clamp(2rem, 7vw, 7rem) !important; }
.service-image-dialogue-primary img { aspect-ratio: 4 / 3; object-fit: cover; }
.service-image-dialogue-secondary img { aspect-ratio: 3 / 4; object-fit: cover; }
.service-detail--architecture-commercial .service-image-dialogue-primary { grid-column: 5 / span 8; }
.service-detail--architecture-commercial .service-image-dialogue-secondary { grid-column: 1 / span 3; grid-row: 1; margin-bottom: 0 !important; align-self: start; }
.service-detail--interior-design .service-image-dialogue-primary { grid-column: 1 / span 6; }
.service-detail--interior-design .service-image-dialogue-secondary { grid-column: 8 / span 4; margin-bottom: clamp(4rem, 10vw, 10rem) !important; }

.service-context { background: var(--color-charcoal); color: var(--color-text-inverse); padding-block: clamp(4.5rem, 9vw, 9rem); }
.service-context-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(3rem, 6vw, 6rem) clamp(1rem, 1.4vw, 1.25rem); align-items: center; }
.service-context-copy { grid-column: 1 / span 5; }
.service-context-copy .site-eyebrow { margin: 0 0 var(--space-5); color: var(--color-text-inverse-muted); }
.service-context-copy > p:last-child { color: var(--color-text-inverse-muted); }
.service-context figure { grid-column: 7 / span 6; }
.service-context img { aspect-ratio: 4 / 3; object-fit: cover; }
.service-detail--architecture-commercial .service-context-copy { grid-column: 8 / span 5; }
.service-detail--architecture-commercial .service-context figure { grid-column: 1 / span 6; grid-row: 1; }
.service-detail--architecture-commercial .service-context img { aspect-ratio: 3 / 4; max-height: 45rem; }
.service-detail--interior-design .service-context { background: var(--color-warm-white); color: var(--color-text); }
.service-detail--interior-design .service-context-copy .site-eyebrow,
.service-detail--interior-design .service-context-copy > p:last-child { color: var(--color-text-muted); }

.service-workflow { padding-block: clamp(5rem, 9vw, 9rem); }
.service-workflow > .site-container > .site-eyebrow { margin: 0 0 var(--space-5); color: var(--color-text-muted); }
.service-workflow h2 { max-width: 20ch; }
.service-workflow-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 3rem); margin: clamp(3rem, 6vw, 6rem) 0 0; padding: 0; list-style: none; }
.service-workflow-list li { padding-top: var(--space-4); border-top: var(--border-width) solid var(--color-border); }
.service-workflow-list span { color: var(--color-text-muted); font-size: var(--type-small); }
.service-workflow-list h3 { margin: var(--space-5) 0 0; font-size: var(--type-subsection-title); }
.service-workflow-list p { max-width: 22rem; margin: var(--space-3) 0 0; color: var(--color-text-muted); }
.service-workflow-resource { margin-top: var(--space-6); }

.service-faq { padding-block: clamp(5rem, 9vw, 9rem); background: var(--color-warm-white); }
.service-faq-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 1.4vw, 1.25rem); }
.service-faq-grid > .site-eyebrow { grid-column: 1 / span 3; margin: .45rem 0 0; color: var(--color-text-muted); }
.service-faq-content { grid-column: 4 / span 8; }
.service-faq-header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(14rem, .8fr); gap: var(--space-6); align-items: end; margin-bottom: clamp(2.5rem, 5vw, 4.5rem); }
.service-faq-header h2 { max-width: 14ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; }
.service-faq-header p { margin: 0; color: var(--color-text-muted); line-height: 1.65; }
.service-faq-list { border-top: var(--border-width) solid var(--color-border); }
.service-faq-list details { border-bottom: var(--border-width) solid var(--color-border); }
.service-faq-list summary { display: grid; grid-template-columns: minmax(0, 1fr) 1.25rem; gap: var(--space-5); align-items: center; padding-block: var(--space-5); cursor: pointer; font-size: var(--type-subsection-title); line-height: 1.25; list-style: none; }
.service-faq-list summary::-webkit-details-marker { display: none; }
.service-faq-list summary:focus-visible { outline: 2px solid var(--color-gold); outline-offset: 4px; }
.service-faq-marker { position: relative; width: 1.1rem; height: 1.1rem; }
.service-faq-marker::before,
.service-faq-marker::after { position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: currentColor; content: ""; transition: transform var(--transition-duration) var(--transition-easing); }
.service-faq-marker::after { transform: rotate(90deg); }
.service-faq-list details[open] .service-faq-marker::after { transform: rotate(0deg); }
.service-faq-answer { max-width: 46rem; padding: 0 var(--space-7) var(--space-5) 0; color: var(--color-text-muted); }
.service-faq-answer p { margin: 0; line-height: 1.7; }

.service-resources { padding-block: clamp(4.5rem, 8vw, 8rem); background: var(--color-warm-white); }
.service-resources-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(1rem, 1.4vw, 1.25rem); }
.service-resources-grid > .site-eyebrow { grid-column: 1 / span 3; margin: .45rem 0 0; color: var(--color-text-muted); }
.service-resources-grid > div { grid-column: 4 / span 8; }
.service-resources header { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(14rem, .85fr); gap: var(--space-6); align-items: end; }
.service-resources h2 { max-width: 15ch; margin: 0; font-size: var(--type-section-title); line-height: 1.08; }
.service-resources header p { margin: 0; color: var(--color-text-muted); line-height: 1.65; }
.service-resource-links { margin-top: clamp(2.5rem, 5vw, 4.5rem); border-top: var(--border-width) solid var(--color-border); }
.service-resource-links a { display: grid; grid-template-columns: minmax(11rem, .75fr) minmax(0, 1.25fr) 1.5rem; gap: var(--space-5); align-items: start; padding-block: var(--space-5); border-bottom: var(--border-width) solid var(--color-border); color: var(--color-text); text-decoration: none; }
.service-resource-links strong { font-weight: var(--font-weight-medium); }
.service-resource-links a > span:nth-child(2) { color: var(--color-text-muted); line-height: 1.55; }
.service-resource-links a > span:last-child { justify-self: end; }

.service-closing-gallery { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: clamp(1rem, 1.4vw, 1.25rem); align-items: start; padding-bottom: clamp(5rem, 10vw, 10rem); }
.service-closing-gallery figure:first-child { grid-column: 1 / span 5; }
.service-closing-gallery figure:last-child:not(:first-child) { grid-column: 7 / span 6; margin-top: clamp(5rem, 12vw, 12rem); }
.service-closing-gallery img { object-fit: cover; }
.service-closing-gallery figure:first-child img { aspect-ratio: 3 / 4; }
.service-closing-gallery figure:only-child { grid-column: 2 / span 10; }
.service-closing-gallery figure:only-child img { aspect-ratio: 16 / 9; }
.service-closing-gallery figure:last-child:not(:first-child) img { aspect-ratio: 4 / 3; }
.service-detail--architecture-commercial .service-closing-gallery figure:first-child { grid-column: 2 / span 4; }
.service-detail--architecture-commercial .service-closing-gallery figure:last-child { grid-column: 7 / span 6; margin-top: 0; }
.service-detail--interior-design .service-closing-gallery figure:first-child { grid-column: 1 / span 4; margin-top: clamp(4rem, 9vw, 9rem); }
.service-detail--interior-design .service-closing-gallery figure:last-child { grid-column: 6 / span 7; margin-top: 0; }

.service-inquiry { padding-block: clamp(4.5rem, 8vw, 8rem); }
.service-inquiry-grid { align-items: start; padding-block: clamp(2.5rem, 4vw, 4rem); border-block: var(--border-width) solid var(--color-border); }
.service-inquiry-copy { grid-column: 1 / span 4; }
.service-inquiry-copy .site-eyebrow { margin: 0 0 var(--space-5); color: var(--color-text-muted); }
.service-inquiry-copy h2 { max-width: 13ch; margin: 0; font-size: clamp(2.2rem, 3.4vw, 3.55rem); font-weight: var(--font-weight-body); letter-spacing: -.04em; line-height: 1.03; }
.service-inquiry-copy > p:not(.site-eyebrow) { max-width: 27rem; margin: var(--space-5) 0 0; color: var(--color-text-muted); line-height: 1.65; }
.service-inquiry-copy .service-inquiry-resource { margin-top: var(--space-5); }
.service-inquiry-copy .service-inquiry-direct { margin-top: var(--space-6); font-size: var(--type-small); }
.service-inquiry-direct a { color: var(--color-text); overflow-wrap: anywhere; }
.service-inquiry-form { grid-column: 6 / -1; }
.service-inquiry-form > h3 { margin: 0 0 var(--space-6); color: var(--color-text-muted); font-size: var(--type-eyebrow); font-weight: var(--font-weight-eyebrow); letter-spacing: var(--letter-spacing-eyebrow); line-height: 1.2; text-transform: uppercase; }
.service-inquiry .project-inquiry-form,
.service-inquiry .form-notice { max-width: none; }
.service-inquiry .form-grid { gap: var(--space-5); }
.service-inquiry .form-field textarea { min-height: 8rem; }

@media (max-width: 767.98px) {
  .services-intro,
  .service-intro,
  .services-capabilities-grid,
  .service-copy-grid,
  .service-inquiry-grid { display: block; }
  .services-intro,
  .service-intro { padding-block: var(--space-7) var(--space-8); }
  .services-intro > .site-eyebrow,
  .service-intro > .site-eyebrow,
  .services-capabilities-grid > .site-eyebrow,
  .service-copy-grid > .site-eyebrow { margin: 0 0 var(--space-4); }
  .services-intro h1,
  .service-intro h1 { max-width: none; }
  .services-route-list { row-gap: var(--space-9); }
  .services-route { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-5); }
  .services-route-copy { order: 2; }
  .services-route:nth-child(even) .services-route-media,
  .services-route:nth-child(even) .services-route-copy { grid-row: auto; }
  .services-route-copy h2 { font-size: var(--type-subsection-title); }
  .services-capabilities ul { grid-template-columns: 1fr; margin-top: var(--space-6); }
  .service-opening-media,
  .service-detail--architecture-commercial .service-opening-media,
  .service-detail--interior-design .service-opening-media { width: calc(100% - var(--page-gutter) * 2); margin-inline: auto; margin-bottom: var(--space-8); }
  .service-opening-media img,
  .service-detail--architecture-commercial .service-opening-media img,
  .service-detail--interior-design .service-opening-media img { max-height: none; }
  .service-approach { padding-bottom: var(--space-8); }
  .service-capability-list { margin-top: var(--space-7); }
  .service-image-dialogue { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); padding-bottom: var(--space-9); }
  .service-image-dialogue-primary,
  .service-detail--architecture-commercial .service-image-dialogue-primary,
  .service-detail--interior-design .service-image-dialogue-primary { grid-column: 1 / span 6; }
  .service-image-dialogue-secondary,
  .service-detail--architecture-commercial .service-image-dialogue-secondary,
  .service-detail--interior-design .service-image-dialogue-secondary { grid-column: 2 / span 5; grid-row: auto; margin: var(--space-5) 0 0 !important; }
  .service-context-grid { display: flex; flex-direction: column; align-items: stretch; }
  .service-detail--architecture-commercial .service-context figure { order: 2; }
  .service-detail .service-opening-media img,
  .service-detail .service-image-dialogue img,
  .service-detail .service-context img,
  .service-detail .service-closing-gallery img { aspect-ratio: var(--intrinsic-aspect-ratio) !important; height: auto; object-fit: cover; }
  .service-context img,
  .service-detail--architecture-commercial .service-context img { max-height: none; }
  .service-workflow-list { grid-template-columns: 1fr; margin-top: var(--space-7); }
  .service-faq-grid { display: block; }
  .service-faq-grid > .site-eyebrow { margin: 0 0 var(--space-4); }
  .service-faq-header { display: block; margin-bottom: var(--space-7); }
  .service-faq-header p { margin-top: var(--space-4); }
  .service-faq-list summary { gap: var(--space-4); padding-block: var(--space-4); font-size: clamp(1.15rem, 5.4vw, 1.4rem); }
  .service-faq-answer { padding-right: 0; }
  .service-resources-grid, .service-resources header { display: block; }
  .service-resources-grid > .site-eyebrow { margin: 0 0 var(--space-4); }
  .service-resources header p { margin-top: var(--space-4); }
  .service-resource-links a { grid-template-columns: minmax(0, 1fr) 1.5rem; }
  .service-resource-links a > span:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .service-resource-links a > span:last-child { grid-column: 2; grid-row: 1; }
  .service-closing-gallery { display: flex; flex-direction: column; padding-bottom: var(--space-9); }
  .service-closing-gallery figure,
  .service-detail--architecture-commercial .service-closing-gallery figure,
  .service-detail--interior-design .service-closing-gallery figure { width: 100%; margin: 0 !important; }
  .service-closing-gallery figure + figure { width: 78% !important; margin: var(--space-5) 0 0 auto !important; }
  .service-inquiry { padding-block: var(--space-7); }
  .service-inquiry-grid { padding-block: var(--space-7); }
  .service-inquiry-copy h2 { max-width: 16ch; font-size: clamp(2.15rem, 9.5vw, 2.8rem); }
  .service-inquiry-form { margin-top: var(--space-7); padding-top: var(--space-7); border-top: var(--border-width) solid var(--color-border); }
}
