/* Contact page: matches the About page, with a compact form-first layout. */
.contact-page { --contact-ink:#302d2a; --contact-muted:#605d59; --contact-orange:#f15c27; --contact-action:#a83810; --contact-line:#dedbd7; --contact-surface:#f6f5f3; }
.contact-page main { color:var(--contact-ink); background:white; }
.contact-page main .container { max-width:1240px; padding-inline:32px; }
.site-refreshed.contact-page .brand-mark { width:200px; height:64px; max-height:none; object-fit:cover; }
body.contact-page .nav .dropdown-menu { left:auto; right:0; }
.contact-page main :is(h1,h2,h3) { color:var(--contact-ink); letter-spacing:-.035em; }
.contact-page main h1 { font-size:clamp(34px,4.4vw,56px); line-height:1.12; margin:0 0 20px; }
.contact-page main h1 em { color:var(--contact-action); font-style:normal; }
.contact-page main h2 { font-size:clamp(26px,2.8vw,36px); line-height:1.2; margin:0 0 16px; }
.contact-page main h3 { font-size:20px; line-height:1.4; }
.contact-page main p { font-size:16px; line-height:1.75; color:var(--contact-muted); margin:0 0 20px; }
.contact-page main .contact-eyebrow { color:var(--contact-action); font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.12em; margin-bottom:16px; }
.contact-page main .btn { min-height:48px; padding:13px 22px; border-radius:8px; font-size:14px; white-space:normal; text-align:center; }
.contact-page main .btn-primary { background:var(--contact-action); border-color:var(--contact-action); color:#fff; box-shadow:none; }
.contact-page main .btn-primary:hover { background:#862d0d; border-color:#862d0d; }
.contact-page main .btn-outline { color:var(--contact-ink); border-color:#8d8780; background:transparent; }
.contact-page main .btn-outline:hover { background:#ede9e4; }
.contact-page main :is(a,button,input,select,textarea,[tabindex]):focus-visible { outline:3px solid var(--contact-action); outline-offset:4px; }
.contact-page main a { overflow-wrap:anywhere; }
.contact-hero { padding:24px 0 40px; }
.contact-breadcrumb { display:flex; gap:12px; font-size:13px; margin-bottom:26px; color:var(--contact-muted); }
.contact-breadcrumb a { color:var(--contact-muted); }
.contact-intro { max-width:660px; }
.contact-hero .container { position:relative; }
.contact-quick { padding-bottom:48px; }
.contact-quick .container { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.contact-quick article { display:flex; flex-direction:column; gap:18px; padding:24px; border:1px solid var(--contact-line); border-radius:12px; }
.contact-quick article > div { display:flex; flex-direction:column; flex:1; }
.contact-page .contact-quick h2 { font-size:19px; margin-bottom:10px; }
.contact-page .contact-quick p { font-size:14px; line-height:1.65; margin-bottom:12px; }
.contact-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:#fae9e1; color:var(--contact-action); flex-shrink:0; }
.contact-icon svg { width:24px; height:24px; }
.contact-address { color:var(--contact-ink); font-size:16px; font-weight:600; margin-bottom:8px; overflow-wrap:anywhere; }
.contact-inline { display:inline-flex; align-items:center; gap:12px; color:var(--contact-action); font-size:14px; font-weight:600; min-height:44px; text-decoration:none; margin-top:auto; }
.contact-demo-button { font:inherit; font-size:14px; color:#68605a; border:0; padding:10px 0; margin-top:auto; background:none; text-align:left; }
.contact-enquiry { padding:64px 0; background:var(--contact-surface); }
.contact-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); align-items:start; gap:32px; }
.enquiry-panel { min-width:0; padding:36px; background:#fff; border:1px solid var(--contact-line); border-radius:14px; }
.contact-page main .contact-availability { padding:14px 16px; background:#fff4ed; color:#70402a; border:1px solid #e6c8b5; border-radius:8px; font-size:14px; }
.contact-availability a { color:#8b300e; font-weight:600; }
.contact-fields { border:0; padding:0; margin:0; min-width:0; }
.contact-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.contact-field { margin-bottom:22px; min-width:0; }
.contact-field label { display:block; font-size:14px; font-weight:600; color:var(--contact-ink); margin-bottom:8px; }
.contact-field label span { font-weight:400; }
.contact-field :is(input,select,textarea) { width:100%; max-width:100%; min-width:0; min-height:50px; padding:12px 14px; border:1px solid #817b75; border-radius:8px; background:#fff; color:var(--contact-ink); font:inherit; font-size:16px; line-height:1.5; box-shadow:none; }
.contact-field textarea { min-height:160px; resize:vertical; }
.contact-field ::placeholder { color:#706a64; opacity:1; }
.contact-field [aria-invalid="true"] { border:2px solid #a42b24; }
.contact-page main .contact-required { font-size:13px; margin:24px 0 20px; }
.contact-page main .contact-pair-hint { font-size:14px; margin:0 0 14px; }
.contact-page main .contact-field-hint { font-size:13px; margin:8px 0 0; }
.contact-textarea-notes { display:flex; justify-content:space-between; gap:12px; margin-top:8px; }
.contact-page main .contact-textarea-notes :is(p,span) { font-size:12px; color:var(--contact-muted); margin:0; }
.contact-page main .field-error { font-size:14px; color:#a42b24; line-height:1.5; margin:8px 0 0; }
.contact-error-summary { padding:18px; border:2px solid #a42b24; background:#fff7f6; border-radius:8px; margin-bottom:24px; color:#91241d; }
.contact-error-summary ul { padding-left:20px; margin:8px 0 0; }
.contact-error-summary a { color:#91241d; font-size:14px; }
.contact-consent { display:flex; align-items:flex-start; gap:12px; }
.contact-consent input { width:20px; height:20px; min-width:20px; margin:4px 0 0; accent-color:var(--contact-action); }
.contact-consent label { font-size:14px; line-height:1.7; }
.contact-consent a { color:var(--contact-action); text-underline-offset:3px; }
.contact-submit { margin-top:26px; display:flex; align-items:center; gap:20px; }
.contact-page main .contact-submit p { font-size:13px; margin:0; flex:1; }
.contact-submit button { flex-shrink:0; }
.contact-submit button:disabled { opacity:.65; cursor:wait; }
.contact-page main #contact-form-status { font-size:14px; line-height:1.6; margin:18px 0 0; }
.contact-page main #contact-form-status[data-state="error"] { color:#a42b24; }
.contact-page main #contact-form-status[data-state="success"] { color:#246139; }
.contact-desk { padding:32px; border-radius:14px; border-top:4px solid var(--contact-orange); background:#302d2a; }
.contact-page .contact-desk h2 { color:#fff; font-size:30px; }
.contact-page .contact-desk p { color:#d9d3ce; font-size:15px; }
.contact-page .contact-desk .contact-eyebrow { color:#ffb495; }
.contact-page .contact-desk .desk-company { margin-top:28px; font-weight:600; font-size:13px; color:#fff; line-height:1.6; }
.contact-desk > a { display:inline-block; color:#ffbd9f; font-size:16px; min-height:44px; }
.desk-checklist { border-top:1px solid #ffffff30; padding-top:24px; margin-top:20px; }
.contact-page .desk-checklist h3 { color:#fff; font-size:18px; margin:0 0 20px; }
.desk-checklist ul { padding:0; margin:0; list-style:none; display:grid; gap:18px; }
.desk-checklist li { display:flex; gap:14px; align-items:baseline; color:#e3ddd7; font-size:15px; line-height:1.6; }
.desk-checklist li span { color:#ffb495; font-size:12px; }
.contact-page .contact-desk .desk-note { font-size:14px; margin:28px 0 0; padding-top:22px; border-top:1px solid #ffffff30; }
.contact-service { padding:44px 0; background:#f9ece4; border-block:1px solid #ecd9cb; }
.contact-service > .container { display:flex; align-items:center; justify-content:space-between; gap:32px; }
.contact-page .contact-service h2 { font-size:28px; }
.contact-page .contact-service p:last-child { margin:0; max-width:620px; }
.contact-service-actions { display:flex; flex-wrap:wrap; gap:12px; flex-shrink:0; }
.contact-location { padding:72px 0; }
.contact-location > .container { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.2fr); gap:64px; }
.contact-visit-panel { padding:28px; border:1px solid var(--contact-line); border-radius:12px; background:var(--contact-surface); }
.contact-visit-panel h3 { margin:16px 0 12px; }
.contact-sample-locations { display:grid; gap:20px; margin-bottom:20px; }
.contact-sample-locations address { font-style:normal; font-size:16px; line-height:1.75; color:var(--contact-muted); }
.contact-page main .contact-sample-notice { font-size:13px; padding:12px 16px; border-left:3px solid var(--contact-orange); background:#fff4ed; margin:0 0 22px; color:#70402a; }
@media (prefers-reduced-motion:no-preference) { .contact-page main :is(a,button,input,textarea,select) { transition:background-color .2s ease,border-color .2s ease; } }
@media (max-width:1100px) { .contact-quick .container { grid-template-columns:repeat(2,minmax(0,1fr)); } .contact-service > .container { flex-direction:column; align-items:flex-start; } .enquiry-panel { padding:28px; } .contact-desk { padding:26px; } }
@media (max-width:900px) { .contact-layout { grid-template-columns:1fr; } .contact-desk { display:block; } .contact-location > .container { gap:32px; } }
@media (max-width:600px) {
  .contact-page main .container { padding-inline:20px; }
  .contact-hero { padding-block:20px 32px; }
  .contact-quick { padding-bottom:32px; }
  .contact-quick .container { grid-template-columns:1fr; gap:12px; }
  .contact-quick article { flex-direction:row; padding:20px; gap:16px; }
  .contact-field-grid { grid-template-columns:1fr; gap:0; }
  .contact-enquiry { padding-block:40px; }
  .enquiry-panel { padding:24px 20px; }
  .contact-submit { flex-direction:column; align-items:stretch; gap:12px; }
  .contact-location { padding-block:48px; }
  .contact-location > .container { grid-template-columns:1fr; gap:24px; }
  .contact-visit-panel { padding:24px; }
  .contact-service-actions { width:100%; }
  .contact-service-actions .btn { flex:1 1 100%; }
  .contact-page main h1 br { display:none; }
}
@media (max-width:360px) { .contact-page main .container { padding-inline:16px; } .enquiry-panel { padding:22px 16px; } .contact-quick article { padding:18px 16px; } }
