/* ACMS Contact page — page-scoped, enqueued only on the Contact page (see functions.php). */

.acms-rule { width: 64px; height: 5px; background: var(--acms-yellow); }
.acms-rule--sm { width: 52px; height: 4px; }

#acms-contact-hero,
#acms-contact-details,
#acms-contact-routing,
#acms-contact-form-sec { margin-bottom: 0 !important; }
#acms-contact-hero .et_pb_module,
#acms-contact-details .et_pb_module,
#acms-contact-routing .et_pb_module,
#acms-contact-form-sec .et_pb_module { margin-bottom: 0; }

/* ---------- PAGE TITLE BAND ---------- */
#acms-contact-hero { position: relative; background: var(--acms-navy); overflow: hidden; padding: 0 !important; }
#acms-contact-hero .et_pb_code,
#acms-contact-hero .et_pb_code_inner { display: contents; }
#acms-contact-hero .et_pb_column { position: static; }
#acms-contact-hero .acms-hero-photo,
#acms-contact-hero .acms-hero-scrim { position: absolute; inset: 0; z-index: 0; }
#acms-contact-hero .acms-hero-photo { width: 100%; height: 100%; object-fit: cover; opacity: .26; }
#acms-contact-hero .acms-hero-scrim { background: linear-gradient(90deg, rgba(11,57,79,.94) 0%, rgba(11,57,79,.66) 70%, rgba(11,57,79,.38) 100%); }
#acms-contact-hero > .et_pb_row { position: relative; z-index: 1; padding: 56px 60px 64px !important; }
#acms-contact-hero .et_pb_column { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
#acms-contact-hero .acms-breadcrumb p { display: flex; align-items: center; gap: 10px; font: 600 13px/1 var(--acms-font); letter-spacing: .06em; color: var(--acms-hero-muted); padding-bottom: 0; }
#acms-contact-hero .acms-breadcrumb a { color: var(--acms-hero-muted); text-decoration: none; }
#acms-contact-hero .acms-breadcrumb a:hover { color: var(--acms-white); }
#acms-contact-hero .acms-breadcrumb .acms-crumb-current { color: var(--acms-yellow); }
#acms-contact-hero h1.et_pb_module_header { font: 700 54px/1.1 var(--acms-font); color: var(--acms-white); padding-bottom: 0; }
#acms-contact-hero .acms-hero-sub p { font: 400 19px/1.6 var(--acms-font); color: rgba(255,255,255,.9); max-width: 780px; padding-bottom: 0; text-wrap: pretty; }

/* ---------- DETAILS + MAP ---------- */
#acms-contact-details { padding-top: 80px !important; }
#acms-contact-details > .et_pb_row { display: grid; grid-template-columns: 1fr 1.1fr; gap: 70px; align-items: start; }
#acms-contact-details > .et_pb_row > .et_pb_column { width: auto !important; margin: 0 !important; }

/* Prototype nests two sub-groups (eyebrow+list at 22px, label+icons at 14px) inside an outer
   34px-gap wrapper; built as four flat sibling modules instead of nesting, so the spacing is
   set explicitly per pair rather than through one uniform gap. */
#acms-contact-info { display: flex; flex-direction: column; gap: 0; align-items: flex-start; }
#acms-contact-info .acms-eyebrow { margin-bottom: 22px; }
#acms-contact-info #acms-contact-list { margin-bottom: 34px; }
#acms-contact-info .acms-social-label { margin-bottom: 14px; }
.acms-eyebrow p { display: flex; align-items: center; gap: 14px; font: 800 13px/1 var(--acms-font); letter-spacing: .14em; text-transform: uppercase; color: var(--acms-brown); padding-bottom: 0; }
.acms-eyebrow p::before { content: ""; display: inline-block; width: 44px; height: 4px; background: var(--acms-yellow); flex: none; }

#acms-contact-list { border-top: 1px solid var(--acms-line); width: 100%; }
#acms-contact-list a, #acms-contact-list .acms-contact-row {
  display: flex; gap: 18px; align-items: flex-start;
  padding: 24px 0; border-bottom: 1px solid var(--acms-line);
  text-decoration: none;
}
#acms-contact-list svg { flex: none; margin-top: 2px; }
#acms-contact-list .acms-contact-label { font: 800 12px/1 var(--acms-font); letter-spacing: .12em; text-transform: uppercase; color: var(--acms-muted); margin-bottom: 4px; }
#acms-contact-list .acms-contact-value { font: 700 21px/1 var(--acms-font); color: var(--acms-navy); }
#acms-contact-list .acms-contact-address { font: 600 17px/1.65 var(--acms-font); color: var(--acms-body-dark); }
#acms-contact-list .acms-visit-actions { display: flex; flex-wrap: wrap; gap: 14px; padding-top: 8px; }
#acms-contact-list .acms-visit-actions a {
  display: inline-flex; align-items: center; gap: 10px;
  font: 700 15px/1 var(--acms-font); text-decoration: none;
  padding: 13px 22px; border: none;
}
#acms-contact-list .acms-btn-filled { background: var(--acms-yellow); color: var(--acms-brown); }
#acms-contact-list .acms-btn-outline { background: transparent; color: var(--acms-navy); border: 2px solid var(--acms-navy) !important; padding: 11px 22px !important; }

#acms-contact-info .acms-social-label p { font: 800 12px/1 var(--acms-font); letter-spacing: .12em; text-transform: uppercase; color: var(--acms-muted); padding-bottom: 0; }
#acms-contact-info .acms-social-icons p { display: flex; flex-wrap: wrap; gap: 12px; padding-bottom: 0; }
#acms-contact-info .acms-social-icons a {
  width: 46px; height: 46px; border: 2px solid var(--acms-navy); border-radius: 5px;
  display: inline-flex; align-items: center; justify-content: center;
}
#acms-contact-info .acms-social-icons a:hover { background: var(--acms-navy); }
#acms-contact-info .acms-social-icons a:hover svg path { fill: var(--acms-white); }

#acms-contact-map { border: 1px solid var(--acms-line); }
#acms-contact-map iframe { width: 100%; height: 560px; border: 0; display: block; }
#acms-contact-map .acms-map-caption {
  background: var(--acms-wash);
  padding: 20px 24px;
  display: flex; flex-wrap: wrap; gap: 26px; align-items: center; justify-content: space-between;
}
#acms-contact-map .acms-map-caption p { padding-bottom: 0; }
#acms-contact-map .acms-map-note { font: 400 14.5px/1.5 var(--acms-font); color: var(--acms-body); }
#acms-contact-map .acms-map-link { font: 700 14.5px/1 var(--acms-font); color: var(--acms-navy); white-space: nowrap; text-decoration: none; }
#acms-contact-map .acms-map-link:hover { color: var(--acms-navy-dark); }

/* ---------- ENQUIRY ROUTING ---------- */
#acms-contact-routing { padding-top: 80px !important; }
#acms-contact-routing > .et_pb_row { padding: 0 !important; }
#acms-contact-routing-head {
  display: flex; align-items: flex-end; justify-content: space-between; gap: 40px;
  border-bottom: 1px solid var(--acms-line);
  padding-bottom: 10px;
  margin-bottom: 12px;
}
#acms-contact-routing-head h2.et_pb_module_header { font: 800 15px/1 var(--acms-font); letter-spacing: .16em; text-transform: uppercase; color: var(--acms-brown); padding-bottom: 0; }
#acms-contact-routing-head .acms-routing-note p { font: 600 14px/1 var(--acms-font); color: var(--acms-muted); padding-bottom: 0; }

#acms-routing-grid { display: grid; grid-template-columns: repeat(4, 1fr); padding: 0 !important; }
#acms-routing-grid .et_pb_column {
  background: var(--acms-white);
  border: 1px solid var(--acms-line);
  margin: 0 !important; width: auto !important;
}
#acms-routing-grid a.acms-route-card {
  display: flex; flex-direction: column; gap: 11px;
  padding: 32px 28px 34px;
  text-decoration: none;
  height: 100%;
}
#acms-routing-grid a.acms-route-card:hover { background: var(--acms-wash); }
#acms-routing-grid .acms-route-rule { width: 38px; height: 4px; background: var(--acms-yellow); }
#acms-routing-grid .acms-route-title { font: 700 20px/1.3 var(--acms-font); color: var(--acms-navy); }
#acms-routing-grid .acms-route-body { font: 400 14.5px/1.65 var(--acms-font); color: var(--acms-body); flex: 1; }
#acms-routing-grid .acms-route-cta { display: flex; align-items: center; gap: 9px; font: 700 14px/1 var(--acms-font); color: var(--acms-navy); padding-top: 6px; }
#acms-routing-grid .acms-route-cta .acms-arrow { color: var(--acms-yellow); }

/* ---------- FORM SECTION ---------- */
#acms-contact-form-sec { padding-top: 80px !important; }
#acms-contact-form-sec > .et_pb_row { display: grid; grid-template-columns: 1fr 1.25fr; border: 1px solid var(--acms-line); }
#acms-contact-form-sec > .et_pb_row > .et_pb_column { width: auto !important; margin: 0 !important; }

.et_pb_row:has(> #acms-form-info) { padding: 0 !important; }
#acms-form-info {
  background: var(--acms-navy);
  padding: 46px 44px;
  display: flex; flex-direction: column; align-items: flex-start; gap: 18px;
}
#acms-form-info h2.et_pb_module_header { font: 700 30px/1.2 var(--acms-font); color: var(--acms-white); padding-bottom: 0; text-wrap: pretty; }
#acms-form-info .acms-form-intro p { font: 400 16.5px/1.7 var(--acms-font); color: rgba(255,255,255,.86); padding-bottom: 0; }
#acms-form-info .acms-office-hours {
  border-top: 1px solid rgba(255,255,255,.2);
  padding-top: 20px;
  margin-top: auto;
  width: 100%;
}
#acms-form-info .acms-office-hours ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
#acms-form-info .acms-office-hours li { display: flex; gap: 12px; align-items: center; font: 400 15.5px/1 var(--acms-font); color: var(--acms-white); }
#acms-form-info .acms-office-hours li::before { content: "\2022"; color: var(--acms-yellow); font-weight: 700; }

#acms-form-field { background: var(--acms-white); padding: 46px 44px; }
#acms-form-field .et_pb_contact_form_container { max-width: none; }
#acms-form-field .et_pb_contact { display: flex; flex-direction: column; gap: 20px; }
#acms-form-field .et_pb_contact_field {
  width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important;
}
/* Name + Email side by side, everything else full width. */
#acms-form-field .et_pb_contact_field:nth-of-type(1),
#acms-form-field .et_pb_contact_field:nth-of-type(2) {
  display: inline-flex; flex-direction: column; width: calc(50% - 10px) !important;
}
#acms-form-field .et_pb_contact_form { display: flex; flex-wrap: wrap; gap: 20px; }
#acms-form-field .et_pb_contact_form_label {
  display: block; font: 800 12px/1 var(--acms-font); letter-spacing: .12em; text-transform: uppercase;
  color: var(--acms-brown); margin-bottom: 8px;
}
#acms-form-field input.input,
#acms-form-field select.input,
#acms-form-field textarea.input {
  width: 100% !important; box-sizing: border-box;
  border: 1px solid var(--acms-border) !important; background: var(--acms-white) !important;
  padding: 14px 15px !important; font: 400 16px/1.4 var(--acms-font) !important; color: var(--acms-body-dark) !important;
}
#acms-form-field .et_contact_bottom_container { align-items: center !important; }
#acms-form-field .et_pb_contact_right label { display: flex !important; align-items: center !important; gap: 8px !important; }
#acms-form-field .et_pb_contact_captcha_question { width: auto !important; white-space: nowrap !important; display: inline !important; }
#acms-form-field .et_pb_contact_submit.et_pb_button {
  background: var(--acms-navy) !important; color: var(--acms-white) !important;
  border: none !important; border-radius: 0 !important;
  font: 700 16px/1 var(--acms-font) !important;
  padding: 0 34px !important;
  height: 52px !important;
  line-height: 52px !important;
  white-space: nowrap !important;
  display: inline-block !important;
  width: auto !important;
  min-width: 160px !important;
}
#acms-form-field .et_pb_contact_submit.et_pb_button::after { display: none !important; }
#acms-form-field .et_pb_contact_field[data-type="select"]::after { top: auto !important; bottom: 26px !important; transform: none !important; margin-top: 0 !important; }
#acms-form-field .et_pb_contact_submit.et_pb_button:hover { background: var(--acms-navy-dark) !important; }
#acms-form-field .acms-form-hint { font: 400 13.5px/1.5 var(--acms-font); color: var(--acms-muted); max-width: 340px; margin-top: 14px; }
#acms-form-field .et_pb_contact_form_message { display: none; }

/* ---------- CLOSING IMAGE ---------- */
#acms-contact-bottom { background: var(--acms-navy); height: 340px; overflow: hidden; }
#acms-contact-bottom .et_pb_column { padding: 0 !important; height: 340px; }
#acms-contact-bottom .et_pb_image, #acms-contact-bottom .et_pb_image_wrap { display: block; height: 340px; }
#acms-contact-bottom img { width: 100%; height: 340px; object-fit: cover; display: block; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  #acms-contact-details > .et_pb_row { grid-template-columns: 1fr; gap: 48px; }
  #acms-routing-grid { grid-template-columns: repeat(2, 1fr); }
  #acms-contact-form-sec > .et_pb_row { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
  #acms-contact-hero h1.et_pb_module_header { font-size: 38px; }
  #acms-routing-grid { grid-template-columns: 1fr; }
  #acms-form-field .et_pb_contact_field:nth-of-type(1),
  #acms-form-field .et_pb_contact_field:nth-of-type(2) { width: 100% !important; }
}

/* HERO-HEIGHT-CONSISTENCY */
#acms-contact-hero { min-height: 339px !important; }
