/* Contact extends the same hero, photography and surfaces as the service pages. */
.contact-enquiries { padding-top:80px; padding-bottom:88px; }
.contact-enquiry-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:min(7vw,100.8px); align-items:start; }
.contact-form-card { position:relative; min-width:0; padding:36px; background:#edf1e7; border-top:3px solid var(--lime); }
.contact-form-anchor { position:absolute; top:0; left:0; }
.contact-form-card .form-tabs { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-bottom:32px; border:0; }
.contact-form-card .form-tabs button { padding:14px 12px; min-height:50px; text-align:center; font-size:14px; border:1px solid var(--line); transition:color .2s,background .2s; }
.contact-form-card .form-tabs button[aria-selected=true] { background:var(--green); color:var(--paper); border-color:var(--green); }
.contact-form-card .form-tabs button:hover { border-color:var(--green); }
.contact-form-card [role=tabpanel]>h3 { font-size:calc(clamp(26px,2.5vw,36px) * var(--section-heading-scale, 1)); line-height:1.15; }
.contact-panel-intro { margin:16px 0; color:var(--muted); }
.contact-form-card .form-grid { gap:22px; margin:28px 0; }
.contact-form-card .field { min-width:0; }
.contact-form-card .field :is(input,select,textarea) { min-width:0; padding:12px; background:var(--paper); }
.contact-form-card .form-note { font-size:14px; }
.contact-form-card .form-status { overflow-wrap:anywhere; }
.contact-form-card [role=tabpanel]+[role=tabpanel]:not([hidden]) { margin-top:0; }
.contact-form-card:has(.form-tabs[hidden]) [role=tabpanel]+[role=tabpanel] { margin-top:48px; padding-top:32px; border-top:1px solid var(--line); }
.contact-jobs-link { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.contact-jobs-link p { margin-bottom:8px; }
.contact-team { min-width:0; }
.contact-team .expertise-team-photo { margin-bottom:36px; }
.contact-team .expertise-team-photo figcaption { font-size:14px; line-height:1.5; }
.contact-team>h3 { font-size:calc(clamp(28px,3vw,42px) * var(--section-heading-scale, 1)); margin:20px 0; line-height:1.1; }
.contact-team>p:not(.eyebrow) { color:var(--muted); }
.contact-direct-links { margin:28px 0; border-top:1px solid var(--line); }
.contact-direct-links>a { display:block; padding:20px 0; border-bottom:1px solid var(--line); }
.contact-direct-links>a>.eyebrow { display:block; font-size:12px; margin-bottom:8px; color:var(--muted); }
.contact-direct-links>a>span:last-child { font-size:clamp(16px,1.8vw,24px); overflow-wrap:anywhere; }
.contact-direct-links>a:hover>span:last-child { color:var(--green); text-decoration:underline; text-underline-offset:5px; }
.contact-visit { display:grid; grid-template-columns:1.3fr 1fr; gap:min(7vw,100.8px); align-items:center; background:var(--green); color:var(--paper); padding-top:72px; padding-bottom:72px; }
.contact-visit .eyebrow,.contact-visit h2 em { color:var(--yellow); }
.contact-visit h2 { font-size:calc(clamp(32px,3.6vw,54px) * var(--section-heading-scale, 1)); margin:22px 0; }
.contact-visit>div>p:not(.eyebrow) { max-width:500px; color:#cfddd2; }
.contact-location { padding:32px; border:1px solid #ffffff40; }
.contact-location address { font-size:18px; font-style:normal; line-height:1.7; margin:20px 0 28px; }
@media(max-width:1100px) {
  .contact-enquiry-grid { gap:40px; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); }
  .contact-form-card { padding:26px; }
  .contact-form-card .form-grid { grid-template-columns:1fr; }
}
@media(max-width:800px) {
  .contact-enquiries { padding-top:56px; padding-bottom:56px; }
  .contact-enquiry-grid,.contact-visit { grid-template-columns:1fr; gap:48px; }
  .contact-form-card .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-team { max-width:600px; }
  .contact-visit { padding-top:56px; padding-bottom:56px; }
}
@media(max-width:560px) {
  .contact-form-card,.contact-location { padding:24px; }
  .contact-form-card .form-grid { grid-template-columns:1fr; }
  .contact-form-card .form-tabs { gap:6px; }
  .contact-form-card .form-tabs button { padding:12px 8px; }
}
