/* BUILDING PRINCIPLES SITE POLISH START — existing brand, native controls. */
:root {
  --bp-site-gold: #bca264;
  --bp-site-gold-light: #d5bf8b;
  --bp-site-charcoal: #1a1a1a;
  --bp-site-blue: #0c89ff;
  --bp-site-blue-dark: #0763bd;
}

/* CTA BUTTONS START */
:is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta) {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  gap: .6em;
  min-height: 48px;
  max-width: 100%;
  border: 1px solid var(--bp-site-gold);
  border-radius: 2px;
  padding: .9em 1.5em;
  color: var(--bp-site-charcoal);
  background: var(--bp-site-gold);
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.35;
  letter-spacing: .055em;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase;
  box-shadow: 0 4px 14px rgb(0 0 0 / 12%);
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}
:is(.goldcta, .bannergoldcta, .blackcta) { width: auto; min-width: 132px; }
.bannergoldcta { margin-right: 0; }
.blackcta { background: var(--bp-site-charcoal); color: var(--bp-site-gold-light); }
:is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta):hover {
  background: var(--bp-site-blue-dark);
  border-color: var(--bp-site-blue);
  color: #fff;
  text-decoration: none;
  letter-spacing: .055em;
  box-shadow: 0 8px 22px rgb(0 0 0 / 22%);
}
:is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta):focus-visible {
  outline: 3px solid var(--bp-site-blue);
  outline-offset: 4px;
}
:is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta):active { transform: translateY(1px); }
.cta_wrapper { flex-wrap: wrap; gap: 14px; }
.cta_wrapper :is(.goldcta, .blackcta) { margin: 0; }
/* CTA BUTTONS END */

/* INQUIRY FORM START */
.bp_contact_form {
  position: relative;
  background: var(--bp-site-charcoal);
  border-block: 1px solid rgb(188 162 100 / 25%);
  color: #fff;
  isolation: isolate;
  overflow: hidden;
  font-family: 'Raleway', Arial, sans-serif;
}
.bp_contact_form::before {
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(120deg, rgb(188 162 100 / 7%), transparent 45%, rgb(12 137 255 / 4%));
  content: '';
  pointer-events: none;
}
.bp_contact_form *, .bp_contact_form *::before, .bp_contact_form *::after { box-sizing: border-box; }
.bp_contact_form .form_wrapper {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 32px;
  width: 100%;
  max-width: 1320px;
  margin: 0 auto;
  padding: 44px 20px;
  align-items: start;
}
.bp_contact_form .form_text_section {
  width: 100%;
  max-width: 620px;
  padding: 0;
  margin: 0;
}
.bp_form_eyebrow {
  display: block;
  margin-bottom: 16px;
  color: var(--bp-site-gold-light);
  font-family: 'Oswald', Arial, sans-serif;
  font-size: .75rem;
  line-height: 1.7;
  letter-spacing: .14em;
}
.bp_contact_form .form_title {
  display: block;
  width: 100%;
  margin: 0 0 18px;
  padding: 0;
  color: #fff;
  font-family: 'Oswald', Arial, sans-serif;
  font-weight: 400;
  font-size: 2rem;
  line-height: 1.22;
  letter-spacing: .015em;
  text-align: left;
  text-transform: uppercase;
}
.bp_contact_form .form_subtitle {
  display: block;
  max-width: 510px;
  margin: 0;
  color: #d5d5d5;
  font-family: 'Raleway', Arial, sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.8;
  text-align: left;
}
.bp_form_intro_rule { width: 64px; height: 2px; margin: 26px 0 18px; background: var(--bp-site-gold); }
.bp_form_intro_note { margin: 0; color: var(--bp-site-gold-light); font-size: .9375rem; line-height: 1.9; }
.bp_contact_form .form_section {
  width: 100%;
  min-width: 0;
  max-width: 680px;
  margin: 0;
  padding: 24px 18px;
  background: #222;
  border: 1px solid #484238;
  border-top: 3px solid var(--bp-site-gold);
  box-shadow: 0 15px 36px rgb(0 0 0 / 17%);
}
.bp_form_heading h3 { margin: 0 0 8px; font-family: 'Oswald', Arial, sans-serif; font-weight: 400; font-size: 1.4rem; line-height: 1.35; color: #fff; }
.bp_form_heading p { margin: 0 0 22px; color: #c8c8c8; font-size: .8125rem; line-height: 1.6; }
.bp_form_fields { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.bp_contact_form .input-row { width: 100%; min-width: 0; margin: 0; }
.bp_contact_form .input-row label {
  display: block;
  width: auto;
  margin: 0 0 8px;
  padding: 0;
  color: #f3f3f3;
  font-family: 'Raleway', Arial, sans-serif;
  font-weight: 500;
  font-size: .875rem;
  line-height: 1.5;
  text-align: left;
  letter-spacing: .01em;
}
.bp_form_required { margin-left: 2px; color: var(--bp-site-gold-light); }
.bp_contact_form .input-row :is(input[type=text], input[type=email], input[type=tel], textarea) {
  display: block;
  width: 100%;
  min-width: 0;
  min-height: 50px;
  margin: 0;
  padding: 12px 14px;
  background: #1a1a1a;
  border: 1px solid #777064;
  border-radius: 2px;
  color: #fff;
  font-family: 'Raleway', Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.55;
  letter-spacing: .005em;
  transition: border-color .2s ease, box-shadow .2s ease, background-color .2s ease;
}
.bp_contact_form .input-row textarea { height: auto; min-height: 142px; resize: vertical; }
.bp_contact_form .input-row :is(input, textarea)::placeholder { color: #aaa7a0; opacity: 1; }
.bp_contact_form .input-row :is(input, textarea):hover { border-color: var(--bp-site-gold); }
.bp_contact_form .input-row :is(input, textarea):focus {
  outline: 2px solid var(--bp-site-blue);
  outline-offset: 2px;
  border-color: var(--bp-site-blue);
  box-shadow: 0 0 0 4px rgb(12 137 255 / 8%);
  background: #1d2228;
}
.bp_contact_form .input-row :is(input, textarea)[aria-invalid=true] { border-color: #ff9a9a; }
.bp_contact_form .input-row :is(input, textarea):-webkit-autofill {
  -webkit-text-fill-color: #fff;
  caret-color: #fff;
  box-shadow: 0 0 0 1000px #1a1a1a inset;
}
.bp_contact_form .info:empty { display: none; }
.bp_contact_form .info:not(:empty) { display: block; margin-top: 6px; color: #ffb3b3; font-size: .8125rem; line-height: 1.6; }
.bp_form_submit_row { margin-top: 24px; }
.bp_contact_form button.btn-submit {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  width: 100%;
  min-height: 54px;
  margin: 0;
  padding: 14px 18px;
  border: 1px solid var(--bp-site-gold);
  border-radius: 2px;
  background: var(--bp-site-gold);
  color: var(--bp-site-charcoal);
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: .08em;
  cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.bp_contact_form button.btn-submit:hover { background: var(--bp-site-blue-dark); border-color: var(--bp-site-blue); color: #fff; box-shadow: 0 6px 22px rgb(0 0 0 / 20%); }
.bp_contact_form button.btn-submit:focus-visible { outline: 3px solid var(--bp-site-blue); outline-offset: 4px; }
.bp_form_submit_arrow { font-size: 1.4em; line-height: 1; transition: transform .2s ease; }
.bp_contact_form button.btn-submit:hover .bp_form_submit_arrow { transform: translate(2px, -2px); }
.bp_contact_form button.btn-submit:disabled { opacity: .65; cursor: progress; box-shadow: none; }
.bp_contact_form button.btn-submit:disabled .bp_form_submit_arrow { transform: none; }
.bp_contact_form #statusMessageWrapper { margin-top: 16px; }
.bp_contact_form #statusMessage:empty { display: none; }
.bp_contact_form #statusMessage {
  padding: 12px 14px;
  margin: 0;
  border-left: 3px solid var(--bp-site-blue);
  background: #18232e;
  color: #f2f2f2;
  font-size: .875rem;
  line-height: 1.7;
  letter-spacing: 0;
}
.bp_contact_form #statusMessage.successMessage { color: #d7efdc; border-color: #8ec99d; background: #1c2b22; }
.bp_contact_form #statusMessage.errorMessage { color: #ffd1d1; border-color: #e99999; background: #362323; }
.bp_contact_form noscript p { color: #ffd1d1; font-size: .875rem; line-height: 1.7; }
@media screen and (min-width: 600px) {
  .bp_contact_form .form_wrapper { padding: 58px 32px; gap: 38px; }
  .bp_contact_form .form_title { font-size: 2.6rem; }
  .bp_contact_form .form_section { padding: 30px; }
  .bp_form_fields { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .bp_form_field_full { grid-column: 1 / -1; }
}
@media screen and (min-width: 1000px) {
  .bp_contact_form .form_wrapper { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: 64px; padding-block: 76px; }
  .bp_contact_form .form_text_section { padding-top: 26px; }
  .bp_contact_form .form_title { font-size: 3rem; }
  .bp_contact_form .form_subtitle { font-size: 1.0625rem; }
}
@media (hover: hover) and (pointer: fine) {
  :is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta):hover { transform: translateY(-2px); }
}
@media (prefers-reduced-motion: reduce) {
  :is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta),
  .bp_contact_form *, .bp_contact_form *::before, .bp_contact_form *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
  :is(.goldcta, .bannergoldcta, .blackcta, .location_content_cta_btn, .navigation_cta, .services_content_cta):hover,
  .bp_contact_form .bp_form_submit_arrow { transform: none !important; }
}
/* INQUIRY FORM END */
/* BUILDING PRINCIPLES SITE POLISH END */

/* EXISTING SITE SECTIONS START — light polish; preserve all column layouts. */
/* Shared page-banner links retain their existing mobile/desktop visibility. */
:is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta) {
  position: relative;
  min-height: 52px;
  padding: 14px 22px;
  border: 1px solid #d4bd85;
  border-radius: 3px;
  background: linear-gradient(160deg, #d0b981, var(--bp-site-gold));
  color: #1a1a1a;
  font-family: 'Oswald', Arial, sans-serif;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: .035em;
  text-align: center;
  text-transform: uppercase;
  text-decoration: none;
  box-shadow: inset 0 1px 0 #ffffff3b, 0 3px 0 #78663c, 0 8px 20px #0003;
  transition: background-color .2s ease, color .2s ease, box-shadow .2s ease, transform .2s ease;
}
:is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta)::after {
  display: inline-block;
  margin-left: 12px;
  content: '→';
  font-family: Arial, sans-serif;
  transition: transform .2s ease;
}
.services_cta_mobile::after { content: none; }
:is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta):hover {
  background: #0763bd;
  border-color: #0c89ff;
  color: #fff;
  text-decoration: none;
  box-shadow: inset 0 1px 0 #ffffff26, 0 3px 0 #08427a, 0 10px 24px #0004;
}
:is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta):hover::after { transform: translateX(3px); }
:is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta, .about_link, .all_locations_item, .all_service_industries_item, .about_video_btn):focus-visible {
  outline: 3px solid #0c89ff;
  outline-offset: 5px;
  box-shadow: 0 0 0 2px #fff, 0 0 0 6px #1a1a1a;
}
.services_cta_wrapper {gap: 14px;}
.services_cta_wrapper :is(.services_cta, .services_cta_mobile) {margin-right: 0; margin-bottom: 4px;}
.services_content_background .services_content_cta {background: #1a1a1a; border-color: #1a1a1a; color: #e1c994; box-shadow: 0 4px 12px #1a1a1a26;}
.services_content_background .services_content_cta:hover {background: #0763bd; border-color: #0763bd; color: #fff;}
.services_content_background .services_content_cta:focus-visible {outline-color: #1a1a1a;}

/* Gentle depth and consistent reading rhythm in the existing alternating bands. */
.main_section_background .section,
.services_content_background,
.location_content_background {
  background: linear-gradient(130deg, #c8b17b, #bca264 68%, #b49a5d);
  color: #1a1a1a;
  border-block: 1px solid #d8c28d;
  box-shadow: inset 0 1px 0 #ffffff26;
}
.main_section_background .section_reverse,
.about_top_section_background,
.contact_about_background,
.locations_ada_content_background,
.all_service_industries_background {
  background: linear-gradient(125deg, #23221e, #1a1a1a 65%);
  border-block: 1px solid #bca26426;
}
.main_section_background .section_wrapper {padding-block: 24px;}
.main_section_background .section_text {padding: 24px;}
.main_section_background .section_text_wrapper {max-width: 640px; margin-inline: auto;}
.main_section_background .section_title {margin: 0 auto 14px; padding: 0; font-size: clamp(1.5rem,2.1vw,2rem); line-height: 1.35; letter-spacing: .015em; text-wrap: balance;}
.main_section_background .section_sub {margin: 0 auto; font-weight: 400; font-size: 1rem; line-height: 1.85; letter-spacing: .01em;}
.main_section_background .section_reverse .section_title {color: #d5bf8b;}
.main_section_background .section_reverse .section_sub {color: #e0dcd2;}
.main_section_background .cta_wrapper {justify-content: center; margin-top: 24px;}
:is(.section_img_wrapper, .about_top_content_img_wrapper, .services_content_img_wrapper, .location_content_img_wrapper, .contact_about_img_wrapper) {
  overflow: hidden;
  border: 1px solid #7b6a44;
  border-radius: 3px;
  box-shadow: 0 10px 26px #0003;
}
:is(.about_top_section_title, .all_service_industries_title, .contact_about_title, .all_locations_section_title, .about_video_section_title, .about_link_title) {margin: 0; font-weight: 500; line-height: 1.35; text-wrap: balance;}
:is(.about_top_section_title, .all_service_industries_title, .contact_about_title, .about_link_title)::after {display: block; width: 64px; height: 2px; margin: 18px auto 4px; background: #bca264; content: '';}
.about_top_section_wrapper {padding: 28px 16px; background: transparent;}
.about_top_section_title {padding-bottom: 24px; color: #d5bf8b;}
:is(.about_section_top, .about_section_bottom) {padding-block: 22px;}
.about_section_bottom {border-top: 1px solid #bca26430;}
.about_top_content_title {margin: 0 0 12px; padding: 0; color: #d5bf8b; font-weight: 400; line-height: 1.4;}
:is(.about_top_content_desc, .contact_about_section_desc, .services_content_desc, .location_content_text, .locations_ada_content) {font-family: 'Raleway', Arial, sans-serif; font-weight: 400; font-size: 1rem; line-height: 1.85; letter-spacing: .005em;}
:is(.about_top_content_desc, .contact_about_section_desc, .services_content_desc, .location_content_text, .locations_ada_content) + :is(p, .locations_ada_content) {margin-top: 16px;}
.services_content_wrapper {padding: 28px 16px;}
.services_content_text_section {padding: 12px;}
.services_content_title {margin: 0 0 12px; padding: 0; font-size: clamp(1.5rem,2.1vw,2.2rem); font-weight: 500; line-height: 1.3; text-wrap: balance;}
.services_content_subtitle {margin: 0; line-height: 1.7; letter-spacing: .025em; font-weight: 500;}
.services_content_divider {max-width: 100px; height: 2px; margin: 20px 0; background: #66522b;}
.services_content_desc {margin: 0 0 20px;}
.services_content_desc span {font-weight: 600;}
.locations_ada_content_wrapper {padding: 32px 20px;}
.locations_ada_content_title {margin: 0 0 14px; padding: 0; font-size: 1.4rem; line-height: 1.4; color: #d5bf8b;}
.locations_ada_content {margin: 0 0 28px; padding-left: 0; color: #e0dcd2;}
.locations_ada_content span {font-family: inherit; font-weight: 600; letter-spacing: inherit;}
.location_content_wrapper {padding: 28px 16px;}
.location_content_section_text {padding: 20px 16px;}
.location_content_h2 {margin: 0 0 14px; font-family: 'Raleway', Arial, sans-serif; font-weight: 500; line-height: 1.35;}
.location_content_subtitle {margin: 0 0 16px; line-height: 1.5;}
.location_content_text {padding: 0;}
.location_img_subtext {padding: 12px 8px; font-size: .875rem; line-height: 1.6; letter-spacing: .04em;}
.contact_about_wrapper {padding: 32px 20px;}
.contact_about_title {padding: 0 0 22px; color: #d5bf8b;}
.contact_about_section_title {margin: 0 0 14px; color: #d5bf8b; font-weight: 400; line-height: 1.4;}
.contact_about_cta_wrapper {margin-top: 24px;}

/* Preserve the industry grid; make its labels readable without hover. */
.all_service_industries_wrapper {padding: 24px 14px;}
.all_service_industries_title {padding: 12px 8px 28px; color: #d5bf8b;}
.all_service_industries_item {overflow: hidden; border: 1px solid #7b6a44; border-radius: 3px; box-shadow: 0 6px 18px #0003;}
.all_service_industries_item_text_wrapper,
.all_service_industries_img_hover:hover .all_service_industries_item_text_wrapper {height: auto; min-height: 64px; background: #1a1a1af2; border-top: 2px solid #bca264;}
.all_service_industries_service,
.all_service_industries_img_hover:hover .all_service_industries_service {height: auto; min-height: 64px; margin: 0; padding: 12px 10px; color: #f8f3e7; font-family: 'Oswald', Arial, sans-serif; font-weight: 400; font-size: .9375rem; line-height: 1.4; letter-spacing: .035em; text-wrap: balance;}
.all_service_industries_item:focus-visible .all_service_industries_item_text_wrapper,
.all_service_industries_item:hover .all_service_industries_item_text_wrapper {background: #0763bd;}

/* Service-area links and useful resources keep their existing destinations/grid. */
.all_locations_wrapper {padding: 32px 14px 24px; background: linear-gradient(120deg, #c8b17b, #bca264);}
.all_locations_subtitle {margin: 0; font-family: 'Raleway', Arial, sans-serif; font-size: .9375rem; line-height: 1.7; font-weight: 400; letter-spacing: .025em; text-transform: none;}
.all_locations_item_wrapper {gap: 12px; width: 94%; margin: 24px auto;}
.all_locations_item {display: flex; align-items: center; justify-content: center; min-height: 48px; margin: 0; padding: 12px; border: 1px solid #1a1a1a; border-radius: 3px; color: #f8f3e7; background: #1a1a1a; font-size: .9375rem; line-height: 1.5; letter-spacing: .03em; box-shadow: 0 3px 9px #1a1a1a22;}
.all_locations_item:hover {background: #0763bd; border-color: #0763bd; color: #fff;}
.about_link_wrapper {max-width: 1320px; margin: 0 auto; padding: 32px 20px;}
.about_link_title {padding: 0 0 20px; color: #d5bf8b;}
.about_link_section_title {margin: 0; padding: 18px 10px; color: #ded8c9; line-height: 1.5; letter-spacing: .04em;}
.about_link {min-height: 52px; padding: 14px 18px; border: 1px solid #6c6047; border-radius: 3px; background: #26241e; color: #e4cfa3; font-size: .9375rem; line-height: 1.7;}
.about_link:hover {border-color: #0c89ff; background: #232e3b; color: #fff; text-decoration: underline; text-underline-offset: 4px;}
.about_video_section_wrapper {padding: 32px 16px; color: #1a1a1a;}
.about_video_section_title {padding: 0 0 24px;}
.about_video_btn {width: 48px; height: 48px; padding: 3px; flex: none;}
.about_video_btn_wrapper {max-width: 320px;}
@media screen and (min-width: 650px) {
  .main_section_background .section_wrapper {padding-block: 36px;}
  .about_top_section_wrapper {padding: 36px 24px;}
  .about_section_top, .about_section_bottom {padding-block: 30px;}
  .about_top_content_desc {text-align: left;}
  .locations_ada_content_wrapper {padding: 40px 28px;}
}
@media screen and (min-width: 1050px) {
  .services_content_wrapper {padding: 42px 24px;}
  .services_content_text_section {padding: 12px 18px;}
}
@media (hover: hover) and (pointer: fine) and (prefers-reduced-motion: no-preference) {
  :is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta):hover {transform: translateY(-2px);}
}
@media (prefers-reduced-motion: reduce) {
  :is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta, .about_link, .all_locations_item, .all_service_industries_item, .all_service_industries_img_hover, .all_service_industries_item_text_wrapper, .all_service_industries_service, .about_video_btn),
  :is(.services_cta, .services_cta_mobile, .location_banner_cta, .contact_about_cta, .error_404_cta, .privacy_policy_cta)::after {transition: none !important; animation: none !important; transform: none !important;}
}
/* Keep the footer estimate action consistent with the banner CTAs. */
#footer_cta {
  min-height: 52px;
  padding: 14px 18px;
  border: 1px solid #d4bd85;
  border-radius: 3px;
  background: linear-gradient(160deg, #d0b981, #bca264);
  color: #1a1a1a;
  line-height: 1.5;
  box-shadow: inset 0 1px 0 #ffffff3b, 0 3px 0 #78663c, 0 8px 20px #0003;
}
#footer_cta:hover {background: #0763bd; border-color: #0c89ff; color: #fff;}
#footer_cta:focus-visible {outline: 3px solid #0c89ff; outline-offset: 5px; box-shadow: 0 0 0 2px #fff, 0 0 0 6px #1a1a1a;}
@media (prefers-reduced-motion: reduce) {#footer_cta {transition: none !important;}}
/* EXISTING SITE SECTIONS END */
