/* GW audio design / Contact Us - editorial redesign */  

.page-contact {
  --ct-ink:#242e38;
  --ct-muted:#606f7d;
  --ct-blue:#577b9f;
  --ct-line:#dce4ec;
  --ct-soft:#f5f8fa;
}
.page-contact .gw-ct-intro { padding-top:4.2rem; padding-bottom:3rem; }
.page-contact .gw-ct-eyebrow { color:#6a87a3; font-size:.72rem; font-weight:700; letter-spacing:.12em; line-height:1.5; text-transform:uppercase; margin:0 0 1rem; }
.page-contact .gw-ct-display { font-size:clamp(2rem,3.9vw,3.4rem); font-weight:650; letter-spacing:-.045em; line-height:1.17; color:var(--ct-ink); margin:0 0 1.45rem; }
.page-contact .gw-ct-display span { color:var(--ct-blue); }
.page-contact .gw-ct-lead { color:#273746; font-size:1.16rem; line-height:1.7; font-weight:500; margin:0 0 1.35rem; }
.page-contact .gw-ct-copy { color:#52606e; font-size:1rem; line-height:1.86; }
.page-contact .gw-ct-title { font-size:clamp(1.65rem,2.5vw,2.35rem); font-weight:650; line-height:1.34; letter-spacing:-.035em; color:var(--ct-ink); margin:0 0 1.45rem; }
.page-contact .gw-ct-section { padding:4.8rem 0; scroll-margin-top:105px; }
.page-contact .gw-ct-tint { background:var(--ct-soft); }
/* Strong yet restrained introduction panel, visually matched to Approach/About. */
.page-contact .gw-ct-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-contact .gw-ct-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-contact .gw-ct-intro-panel > div:last-child { border-bottom:0; }
.page-contact .gw-ct-intro-panel span { grid-row:span 2; color:#93bad6; font-size:.88rem; font-weight:700; }
.page-contact .gw-ct-intro-panel strong { color:#fff; font-size:1rem; line-height:1.35; font-weight:650; }
.page-contact .gw-ct-intro-panel small { display:block; color:#c4d1db; font-size:.82rem; line-height:1.55; margin-top:.35rem; overflow-wrap:anywhere; }
.page-contact .gw-ct-intro-panel a { color:#d2e5f4; text-decoration:none; text-underline-offset:3px; }
.page-contact .gw-ct-intro-panel a:hover, .page-contact .gw-ct-intro-panel a:focus-visible { color:#fff; text-decoration:underline; }
.page-contact .gw-ct-onpage { display:flex; flex-wrap:wrap; column-gap:1.7rem; row-gap:.7rem; border-top:1px solid var(--ct-line); padding-top:1.15rem; margin-top:2.25rem; }
.page-contact .gw-ct-onpage a { color:#536e87; text-decoration:none; font-size:.84rem; font-weight:650; }
.page-contact .gw-ct-onpage a:hover, .page-contact .gw-ct-onpage a:focus-visible { color:#2b5275; text-decoration:underline; text-underline-offset:4px; }
/* Form zone. Explicit overrides are scoped to the new card only. */
.page-contact .gw-ct-aside-line { margin-top:1.5rem; padding:0 0 0 1.05rem; border-left:3px solid #87a5bc; max-width:290px; color:#708395; font-size:.86rem; font-style:italic; line-height:1.65; }
.page-contact .gw-ct-discretion { display:flex; gap:.8rem; margin-top:2.4rem; border-top:1px solid #d8e3eb; padding-top:1.35rem; }
.page-contact .gw-ct-discretion-icon { display:flex; flex:0 0 2.25rem; width:2.25rem; height:2.25rem; align-items:center; justify-content:center; background:#e9f0f6; color:#6988a3; }
.page-contact .gw-ct-discretion strong { display:block; color:#2b4050; font-size:.94rem; line-height:1.45; margin-bottom:.35rem; }
.page-contact .gw-ct-discretion p { color:#6c7c89; font-size:.85rem; line-height:1.68; margin:0; }
.page-contact .gw-ct-form-card { background:#fff; border:1px solid #dce5ed; border-top:3px solid #90abc3; padding:2rem 2.15rem 2.25rem; }
.page-contact .gw-ct-form-heading { border-bottom:1px solid #e2e9ef; margin-bottom:1.85rem; padding-bottom:1.2rem; }
.page-contact .gw-ct-form-kicker { color:#7695ae; font-size:.7rem; letter-spacing:.1em; font-weight:700; margin:0 0 .55rem; }
.page-contact .gw-ct-form-heading h3 { color:#2b3f50; font-size:1.38rem; font-weight:650; margin:0 0 .65rem; }
.page-contact .gw-ct-form-heading > p:last-child { color:#71808b; font-size:.89rem; line-height:1.7; margin:0; }
.page-contact .gw-ct-form-card .form-group { margin-bottom:1.25rem; }
.page-contact .gw-ct-form-card label { color:#384e60; font-size:.82rem !important; font-weight:650; letter-spacing:.01em; margin-bottom:.45rem !important; }
.page-contact .gw-ct-form-card .form-control { border:1px solid #d3dfe8; background:#fbfcfd; border-radius:0; box-shadow:none; color:#2c3b49; font-size:.94rem !important; padding:.72rem .9rem !important; line-height:1.5; min-height:47px; transition:border-color .18s ease,box-shadow .18s ease; }
.page-contact .gw-ct-form-card textarea.form-control { min-height:132px; resize:vertical; }
.page-contact .gw-ct-form-card .form-control:focus { background:#fff; border-color:#6f94b2; box-shadow:0 0 0 3px rgba(110,147,178,.14); outline:none; }
.page-contact .gw-ct-form-card .btn[type=submit] { margin-top:.25rem; }
/* Keep Google's reCAPTCHA at its natural size without creating a scrollbar.
   overflow-x:auto also computes overflow-y:auto and can show vertical scrolling. */
.page-contact #recaptcha-container { max-width:100%; overflow:visible; }
/* The two office cards use the original composition from gwaudiodesign.css. */
.page-contact .gw-ct-section-intro { margin-bottom:2.1rem; }
/* The original map container and consent message remain unaltered. */
.page-contact .gw-ct-map-section { background:var(--ct-soft); scroll-margin-top:105px; }
.page-contact .gw-ct-map-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; padding-top:3.6rem; padding-bottom:2rem; }
.page-contact .gw-ct-map-heading .gw-ct-title { margin-bottom:0; }
.page-contact .gw-ct-map-heading > p { max-width:340px; font-size:.85rem; }
.page-contact .gw-ct-google-map { height:430px !important; background:#e5edf3; }
@media (max-width:991px) {
  .page-contact .gw-ct-section { padding:3.7rem 0; }
}
@media (max-width:767px) {
  .page-contact .gw-ct-intro { padding-top:3rem; }
  .page-contact .gw-ct-form-card { padding:1.5rem 1.3rem 1.6rem; }
  .page-contact .gw-ct-onpage { column-gap:1.2rem; }
  .page-contact .gw-ct-map-heading { flex-direction:column; align-items:flex-start; gap:1rem; padding-top:2.8rem; }
  .page-contact .gw-ct-map-heading .gw-ct-title { margin-bottom:.3rem; }
  .page-contact .gw-ct-google-map { height:350px !important; }
}
@media (max-width:480px) {
  .page-contact .gw-ct-intro-panel { padding:1.2rem 1.3rem; }
  .page-contact .gw-ct-form-card { padding:1.3rem 1rem; }
}
@media (prefers-reduced-motion:reduce) {
}

/* Keep the original two horizontal office cards aligned at tablet and desktop widths. */
@media (min-width: 768px) {
  .page-contact #locations .office-cards-row { gap: 30px; }
  .page-contact #locations .office-cards-row > .col-md-6 {
    flex: 0 0 calc((100% - 30px) / 2);
    max-width: calc((100% - 30px) / 2);
    width: calc((100% - 30px) / 2);
  }
}
@media (max-width: 767px) {
  .page-contact #locations .office-cards-row > [class*="col-"] { width: 100%; }
}
