/* GW audio design / Services Overview
   Page-specific visual layer, based on the editorial styling of About Us & Approach.
   Deploy as /css/gw/services.css beside gwaudiodesign.css.
   Intentionally scoped to body.page-services; global header and footer are untouched.
*/
.page-services {
  --sv-ink:#242e38;
  --sv-muted:#606f7d;
  --sv-blue:#577b9f;
  --sv-line:#dce4ec;
  --sv-soft:#f5f8fa;
}
.page-services .gw-sv-intro { padding-top:4.2rem; padding-bottom:3.2rem; }
.page-services .gw-sv-eyebrow { color:#6a87a3; font-size:.72rem; font-weight:700; letter-spacing:.12em; line-height:1.5; text-transform:uppercase; margin:0 0 1rem; }
.page-services .gw-sv-display { font-size:clamp(2rem,3.9vw,3.4rem); font-weight:650; letter-spacing:-.045em; line-height:1.17; color:var(--sv-ink); margin:0 0 1.45rem; }
.page-services .gw-sv-display span { color:var(--sv-blue); }
.page-services .gw-sv-lead { color:#273746; font-size:1.16rem; line-height:1.7; font-weight:500; margin-bottom:1.35rem; }
.page-services .gw-sv-copy { color:#52606e; font-size:1rem; line-height:1.86; }
.page-services .gw-sv-title { font-size:clamp(1.65rem,2.5vw,2.35rem); font-weight:650; line-height:1.34; letter-spacing:-.035em; color:var(--sv-ink); margin:0 0 1.3rem; }
.page-services .gw-sv-section { padding:4.8rem 0; scroll-margin-top:105px; }
.page-services .gw-sv-tint { background:var(--sv-soft); }
.page-services .gw-sv-section-lead { margin-bottom:2.1rem; }
/* Same restrained introductory panel as Approach / About Us. */
.page-services .gw-sv-intro-panel { background:#253441; border-top:4px solid #84a6c4; box-shadow:0 12px 34px rgba(30,49,63,.12); padding:1.55rem 1.75rem; color:#fff; }
.page-services .gw-sv-intro-panel > div { display:grid; grid-template-columns:2.5rem minmax(0,1fr); column-gap:.6rem; padding:1.05rem 0; border-bottom:1px solid rgba(255,255,255,.15); }
.page-services .gw-sv-intro-panel > div:last-child { border-bottom:0; }
.page-services .gw-sv-intro-panel span { grid-row:span 2; color:#93bad6; font-size:.88rem; font-weight:700; }
.page-services .gw-sv-intro-panel strong { color:#fff; font-size:1rem; line-height:1.35; font-weight:650; }
.page-services .gw-sv-intro-panel small { display:block; color:#c4d1db; font-size:.82rem; line-height:1.55; margin-top:.35rem; }
.page-services .gw-sv-onpage { display:flex; flex-wrap:wrap; column-gap:1.7rem; row-gap:.7rem; border-top:1px solid var(--sv-line); padding-top:1.15rem; margin-top:2.25rem; }
.page-services .gw-sv-onpage a { color:#536e87; text-decoration:none; font-size:.84rem; font-weight:650; }
.page-services .gw-sv-onpage a:hover, .page-services .gw-sv-onpage a:focus-visible { color:#2b5275; text-decoration:underline; text-underline-offset:4px; }
/* Featured primary discipline. */
.page-services .gw-sv-feature { display:grid; grid-template-columns: 1.14fr 1fr; background:#fff; border:1px solid #dce5ed; box-shadow:0 10px 28px rgba(40,60,77,.06); overflow:hidden; }
.page-services .gw-sv-feature-image { position:relative; min-width:0; min-height:335px; background:#e8edf1; overflow:hidden; }
.page-services .gw-sv-feature-image > img { display:block; width:100%; height:100%; min-height:335px; object-fit:cover; }
.page-services .gw-sv-image-index { position:absolute; left:1.4rem; bottom:1.3rem; background:rgba(34,50,62,.86); color:#fff; font-size:.72rem; font-weight:700; letter-spacing:.12em; padding:.64rem .85rem; }
.page-services .gw-sv-feature-body { padding:2.7rem 2.8rem; display:flex; flex-direction:column; justify-content:center; }
.page-services .gw-sv-feature-kicker { color:#7092ad; font-size:.7rem; font-weight:700; letter-spacing:.09em; margin:0 0 .9rem; }
.page-services .gw-sv-feature-body h3 { color:#273947; font-size:clamp(1.35rem,1.8vw,1.85rem); font-weight:650; letter-spacing:-.03em; line-height:1.35; margin:0 0 1.15rem; }
.page-services .gw-sv-feature-body p:not(.gw-sv-feature-kicker) { color:#586977; font-size:.94rem; line-height:1.8; margin:0 0 1.08rem; }
.page-services .gw-sv-action { color:#416b8c; font-size:.85rem; font-weight:700; text-decoration:none; border-bottom:1px solid #a8bdce; align-self:flex-start; margin-top:.25rem; padding-bottom:.35rem; }
.page-services .gw-sv-action:hover, .page-services .gw-sv-action:focus-visible { color:#254d6c; border-color:#254d6c; }
/* Six supporting disciplines: consistent image proportions and text/card heights. */
.page-services .gw-sv-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.3rem; }
.page-services .gw-sv-card { min-width:0; background:#fff; border:1px solid #dce5ed; transition:border-color .22s ease; }
.page-services .gw-sv-card:hover, .page-services .gw-sv-card:focus-within { border-color:#6f8597; }
.page-services .gw-sv-card-link { color:inherit; text-decoration:none; height:100%; display:flex; flex-direction:column; }
.page-services .gw-sv-card-link:hover, .page-services .gw-sv-card-link:focus-visible { text-decoration:none; }
.page-services .gw-sv-card-link:focus-visible { outline:3px solid #719ab9; outline-offset:3px; }
.page-services .gw-sv-card-image { width:100%; aspect-ratio:16/9; overflow:hidden; background:#e9eff4; }
.page-services .gw-sv-card-image img { width:100%; height:100%; display:block; object-fit:cover; }
.page-services .gw-sv-card-content { padding:1.5rem 1.45rem 1.4rem; display:flex; flex-direction:column; flex:1 1 auto; border-top:3px solid #93aec4; }
.page-services .gw-sv-card-index { font-size:.7rem; font-weight:700; letter-spacing:.09em; color:#7695ae; margin-bottom:.75rem; }
.page-services .gw-sv-card h3 { color:#273947; font-size:1.18rem; font-weight:650; line-height:1.4; margin:0 0 .65rem; }
.page-services .gw-sv-card p { color:#60717e; font-size:.87rem; line-height:1.72; margin:0 0 1.5rem; }
.page-services .gw-sv-card-action { margin-top:auto; padding-top:.45rem; color:#416b8c; font-size:.82rem; font-weight:700; align-self:flex-start; border-bottom:1px solid #b1c4d3; padding-bottom:.2rem; }
.page-services .gw-sv-card-link:hover .gw-sv-card-action { color:#244b6d; border-color:#244b6d; }
/* Engineering coordination: informative without repeating the full Approach page. */
.page-services .gw-sv-coordination { border:1px solid #dbe4eb; background:#dbe4eb; display:grid; gap:1px; grid-template-columns:repeat(3,minmax(0,1fr)); }
.page-services .gw-sv-coordination > div { padding:1.5rem 1.1rem 1.6rem; background:#fff; }
.page-services .gw-sv-coordination span { display:block; color:#7393af; font-size:.74rem; font-weight:700; margin-bottom:.65rem; }
.page-services .gw-sv-coordination strong { display:block; color:#2b3c4c; font-size:.99rem; line-height:1.4; margin-bottom:.55rem; }
.page-services .gw-sv-coordination small { display:block; color:#657787; font-size:.8rem; line-height:1.65; }
.page-services .gw-sv-approach-link { display:inline-block; margin-top:1.35rem; color:#416b8c; border-bottom:1px solid #aac1d2; padding-bottom:.25rem; font-size:.84rem; font-weight:700; text-decoration:none; }
.page-services .gw-sv-approach-link:hover, .page-services .gw-sv-approach-link:focus-visible { color:#244b6d; border-color:#244b6d; }
/* Single preserved client quote, no decorative slider controls. */
.page-services .gw-sv-testimonial { background:#f7f9fb; border-left:4px solid #86a6c0; padding:2.1rem 2.4rem 2rem; margin:0; }
.page-services .gw-sv-quote-mark { display:block; height:2.5rem; color:#7598b4; font-family:Georgia,serif; font-size:4.6rem; font-weight:400; line-height:.8; }
.page-services .gw-sv-testimonial blockquote { padding:0; margin:0; border:0; background:none; }
.page-services .gw-sv-testimonial blockquote p { color:#344a5d; font-size:1.07rem; line-height:1.86; margin:0 0 1.45rem; font-weight:400; }
.page-services .gw-sv-testimonial figcaption { border-top:1px solid #dce5ed; padding-top:1rem; display:flex; gap:.3rem 1rem; flex-wrap:wrap; align-items:baseline; }
.page-services .gw-sv-testimonial figcaption strong { color:#2c4355; font-size:.89rem; }
.page-services .gw-sv-testimonial figcaption span { color:#71818e; font-size:.82rem; }
@media(max-width:1199px) {
  .page-services .gw-sv-feature-body { padding:2rem 2.05rem; }
  .page-services .gw-sv-coordination { grid-template-columns:1fr; }
}
@media(max-width:991px) {
  .page-services .gw-sv-section { padding:3.7rem 0; }
  .page-services .gw-sv-feature { grid-template-columns:1fr; }
  .page-services .gw-sv-feature-image { min-height:0; aspect-ratio:16/8; }
  .page-services .gw-sv-feature-image > img { min-height:0; }
  .page-services .gw-sv-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .page-services .gw-sv-coordination { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:767px) {
  .page-services .gw-sv-intro { padding-top:3rem; }
  .page-services .gw-sv-feature-body { padding:1.6rem; }
  .page-services .gw-sv-card-grid { gap:1rem; }
  .page-services .gw-sv-coordination { grid-template-columns:1fr; }
  .page-services .gw-sv-testimonial { padding:1.65rem 1.45rem; }
}
@media(max-width:575px) {
  .page-services .gw-sv-card-grid { grid-template-columns:1fr; }
  .page-services .gw-sv-onpage { column-gap:1.15rem; }
  .page-services .gw-sv-feature-image { aspect-ratio:16/10; }
  .page-services .gw-sv-card-content { padding:1.35rem; }
}
@media(prefers-reduced-motion:reduce) {
  .page-services .gw-sv-card { transition:none; }
  .page-services * { scroll-behavior:auto !important; }
}

/* Image-corner service labels, matched to the GW editorial reference. */
  .page-services .gw-sv-feature-image,
  .page-services .gw-sv-card-image {
    position: relative;
  }

  .page-services .gw-sv-feature-image > .gw-sv-service-label,
  .page-services .gw-sv-card-image > .gw-sv-service-label {
    position: absolute;
    left: 22px;
    bottom: 20px;
    z-index: 5;
    display: inline-block;
    max-width: calc(100% - 44px);
    margin: 0;
    padding: 14px 15px;
    background: rgba(29, 45, 57, 0.91);
    color: #fff;
    font-family: 'Montserrat', sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .045em;
    text-transform: uppercase;
    border: 0;
    border-radius: 0;
    box-shadow: none;
    pointer-events: none;
  }

  @media (max-width: 575.98px) {
    .page-services .gw-sv-feature-image > .gw-sv-service-label,
    .page-services .gw-sv-card-image > .gw-sv-service-label {
      left: 15px;
      bottom: 15px;
      max-width: calc(100% - 30px);
      padding: 11px 12px;
      font-size: 10px;
    }
  }

