/* =========================================================
   TRIMWORKS OF MICHIGAN
   CONTACT PAGE
   Page: /contact/
   ========================================================= */

.tw-contact-page {
  --twc-navy: var(--trim-navy, #061728);
  --twc-red: var(--trim-red, #e30620);
  --twc-red-dark: var(--trim-red-dark, #b90419);
  --twc-off-white: var(--trim-off-white, #f2f5f7);
  --twc-gray-100: var(--trim-gray-100, #e8edf1);
  --twc-gray-300: var(--trim-gray-300, #c9cfd4);
  --twc-gray-600: var(--trim-gray-600, #69737c);
  --twc-charcoal: var(--trim-charcoal, #20262b);
  --twc-heading: var(--trim-heading, "Oswald", Arial, sans-serif);
  --twc-body: var(--trim-body, "Helvetica Neue", Helvetica, Arial, sans-serif);
  color: var(--twc-charcoal);
  font-family: var(--twc-body);
}

.tw-contact-page *,
.tw-contact-page *::before,
.tw-contact-page *::after {
  box-sizing: border-box;
}

.tw-contact-container {
  width: min(calc(100% - 96px), 1240px);
  margin-inline: auto;
}

.tw-contact-kicker {
  margin: 0 0 16px;
  color: var(--twc-red);
  font: 600 .82rem/1 var(--twc-heading);
  letter-spacing: .14em;
  text-transform: uppercase;
}

.tw-contact-page h1,
.tw-contact-page h2 {
  font-family: var(--twc-heading);
  text-transform: uppercase;
}

.tw-contact-page p {
  line-height: 1.65;
}


/* =========================================================
   ABOVE-THE-FOLD CONTACT
   ========================================================= */

.tw-contact-hero {
  background: var(--twc-navy);
  color: #fff;
}

.tw-contact-hero__grid {
  display: grid;
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(54px, 7vw, 100px);
  align-items: center;
  min-height: 720px;
  padding-top: 155px;
  padding-bottom: 80px;
}


/* COPY */

.tw-contact-hero__copy {
  max-width: 575px;
}

.tw-contact-hero h1 {
  margin: 0;
  color: #fff;
  font-size: clamp(4rem, 6vw, 6.8rem);
  font-weight: 600;
  line-height: .91;
  letter-spacing: -.04em;
}

.tw-contact-hero__lead {
  margin: 28px 0 0;
  color: rgba(255,255,255,.76);
  font-size: clamp(1.05rem, 1.35vw, 1.18rem);
}

.tw-contact-quick {
  margin-top: 42px;
  border-top: 1px solid rgba(255,255,255,.16);
}

.tw-contact-quick__item {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 20px;
  align-items: center;
  min-height: 66px;
  color: inherit;
  border-bottom: 1px solid rgba(255,255,255,.16);
  text-decoration: none;
}

.tw-contact-quick__item span {
  color: rgba(255,255,255,.48);
  font: 600 .75rem/1 var(--twc-heading);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tw-contact-quick__item strong {
  color: #fff;
  font-size: .96rem;
  font-weight: 500;
}


/* =========================================================
   FORM CARD
   ========================================================= */

.tw-contact-form-card {
  position: relative;
  background: #fff;
  color: var(--twc-charcoal);
  border: 1px solid rgba(6, 23, 40, 0.08);
  box-shadow: 0 28px 70px rgba(0,0,0,.18);
  overflow: hidden;
}

.tw-contact-form-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 5px;
  background: var(--twc-red);
}

.tw-contact-form-card__heading {
  padding: 34px 38px 26px;
  background: #fff;
  border-bottom: 1px solid var(--twc-gray-100);
}

.tw-contact-form-card__heading .tw-contact-kicker {
  margin-bottom: 10px;
  color: var(--twc-red);
}

.tw-contact-form-card h2 {
  margin: 0;
  color: var(--twc-navy);
  font-size: clamp(2.4rem, 3.2vw, 3.6rem);
  font-weight: 600;
  line-height: .95;
  letter-spacing: -.025em;
}

.tw-contact-form-card__body {
  padding: 30px 38px 38px;
}


/* =========================================================
   GRAVITY FORMS — MODERN TRIMWORKS STYLE
   ========================================================= */

.tw-contact-form-card .gform_wrapper,
.tw-contact-form-card .gform_wrapper.gravity-theme {
  margin: 0;
}

.tw-contact-form-card .gform_wrapper .gform_heading {
  display: none;
}

.tw-contact-form-card .gform_wrapper .gform_fields {
  row-gap: 18px;
  column-gap: 18px;
}

.tw-contact-form-card .gform_wrapper .gfield {
  margin: 0;
}


/* LABELS */

.tw-contact-form-card .gform_wrapper label,
.tw-contact-form-card .gform_wrapper .gfield_label {
  margin-bottom: 8px;
  color: var(--twc-navy);
  font: 600 .78rem/1.2 var(--twc-heading);
  letter-spacing: .055em;
  text-transform: uppercase;
}


/* INPUTS */

.tw-contact-form-card .gform_wrapper input[type="text"],
.tw-contact-form-card .gform_wrapper input[type="email"],
.tw-contact-form-card .gform_wrapper input[type="tel"],
.tw-contact-form-card .gform_wrapper input[type="url"],
.tw-contact-form-card .gform_wrapper input[type="number"],
.tw-contact-form-card .gform_wrapper select,
.tw-contact-form-card .gform_wrapper textarea {
  width: 100%;
  min-height: 54px;
  padding: 13px 15px !important;

  color: var(--twc-charcoal);
  background: #f6f8fa;

  border: 1px solid #d9e0e6;
  border-radius: 0;

  box-shadow: none;

  font-family: var(--twc-body);
  font-size: .96rem;

  transition:
    background .2s ease,
    border-color .2s ease,
    box-shadow .2s ease;
}

.tw-contact-form-card .gform_wrapper textarea {
  min-height: 125px;
  resize: vertical;
}


/* FOCUS STATE */

.tw-contact-form-card .gform_wrapper input[type="text"]:focus,
.tw-contact-form-card .gform_wrapper input[type="email"]:focus,
.tw-contact-form-card .gform_wrapper input[type="tel"]:focus,
.tw-contact-form-card .gform_wrapper input[type="url"]:focus,
.tw-contact-form-card .gform_wrapper input[type="number"]:focus,
.tw-contact-form-card .gform_wrapper select:focus,
.tw-contact-form-card .gform_wrapper textarea:focus {
  background: #fff;
  border-color: var(--twc-navy);
  outline: none;
  box-shadow: 0 0 0 3px rgba(6, 23, 40, 0.07);
}


/* PLACEHOLDERS */

.tw-contact-form-card .gform_wrapper input::placeholder,
.tw-contact-form-card .gform_wrapper textarea::placeholder {
  color: #9aa4ad;
  opacity: 1;
}


/* SUBMIT */

.tw-contact-form-card .gform_wrapper .gform_footer,
.tw-contact-form-card .gform_wrapper .gform_page_footer {
  margin: 22px 0 0;
  padding: 0;
}

.tw-contact-form-card .gform_wrapper input[type="submit"],
.tw-contact-form-card .gform_wrapper button[type="submit"] {
  min-height: 56px;
  margin: 0;
  padding: 0 34px;

  color: #fff;
  background: var(--twc-red);

  border: 0;
  border-radius: 0;

  cursor: pointer;

  font: 600 .92rem/1 var(--twc-heading);
  letter-spacing: .07em;
  text-transform: uppercase;

  box-shadow: 0 10px 24px rgba(227, 6, 32, 0.18);

  transition:
    background .2s ease,
    transform .2s ease,
    box-shadow .2s ease;
}

.tw-contact-form-card .gform_wrapper input[type="submit"]:hover,
.tw-contact-form-card .gform_wrapper button[type="submit"]:hover {
  background: var(--twc-red-dark);
  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(227, 6, 32, 0.24);
}


/* VALIDATION */

.tw-contact-form-card .gform_wrapper .gfield_validation_message,
.tw-contact-form-card .gform_wrapper .validation_message {
  margin-top: 7px;
  padding: 8px 10px;

  color: var(--twc-red-dark);
  background: rgba(227, 6, 32, 0.06);

  border: 0;
  border-left: 3px solid var(--twc-red);

  font-size: .82rem;
}


/* =========================================================
   CONTACT DETAILS
   ========================================================= */

.tw-contact-details {
  padding: clamp(75px, 8vw, 115px) 0;
  background: var(--twc-off-white);
}

.tw-contact-details__grid {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(55px, 8vw, 110px);
  align-items: start;
}

.tw-contact-details__intro h2 {
  margin: 0;
  color: var(--twc-navy);
  font-size: clamp(2.7rem, 4.8vw, 4.8rem);
  font-weight: 600;
  line-height: .96;
  letter-spacing: -.025em;
}

.tw-contact-details__intro p:not(.tw-contact-kicker) {
  max-width: 500px;
  margin: 24px 0 0;
  color: var(--twc-gray-600);
}

.tw-contact-details__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--twc-gray-300);
}

.tw-contact-details__cards article {
  min-height: 145px;
  padding: 28px 25px;
  border-right: 1px solid var(--twc-gray-300);
  border-bottom: 1px solid var(--twc-gray-300);
}

.tw-contact-details__cards article:nth-child(2n) {
  border-right: 0;
}

.tw-contact-details__cards span {
  display: block;
  margin-bottom: 14px;
  color: var(--twc-red);
  font: 600 .76rem/1 var(--twc-heading);
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tw-contact-details__cards a,
.tw-contact-details__cards address,
.tw-contact-details__cards p {
  margin: 0;
  color: var(--twc-navy);
  font-size: 1rem;
  font-style: normal;
  font-weight: 600;
  line-height: 1.55;
  text-decoration: none;
}

.tw-contact-details__cards a:hover {
  color: var(--twc-red);
}


/* =========================================================
   TABLET
   ========================================================= */

@media (max-width: 950px) {

  .tw-contact-container {
    width: min(calc(100% - 64px), 1240px);
  }

  .tw-contact-hero__grid,
  .tw-contact-details__grid {
    grid-template-columns: 1fr;
  }

  .tw-contact-hero__grid {
    gap: 44px;
    min-height: 0;
    padding-top: 165px;
    padding-bottom: 70px;
  }

  .tw-contact-hero__copy,
  .tw-contact-form-card {
    max-width: 750px;
  }

  .tw-contact-form-card {
    width: 100%;
  }
}


/* =========================================================
   MOBILE
   FORM IS INTENTIONALLY FIRST
   ========================================================= */

@media (max-width: 620px) {

  .tw-contact-container {
    width: min(calc(100% - 36px), 1240px);
  }

  .tw-contact-hero__grid {
    display: flex;
    flex-direction: column;
    gap: 42px;
    padding-top: 122px;
    padding-bottom: 58px;
  }

  .tw-contact-form-card {
    order: 1;
    width: 100%;
  }

  .tw-contact-hero__copy {
    order: 2;
    width: 100%;
  }

  .tw-contact-form-card__heading {
    padding: 28px 22px 22px;
  }

  .tw-contact-form-card__body {
    padding: 24px 22px 28px;
  }

  .tw-contact-form-card h2 {
    font-size: 2.45rem;
  }

  .tw-contact-form-card .gform_wrapper .gform_fields {
    row-gap: 15px;
  }

  .tw-contact-form-card .gform_wrapper input[type="submit"],
  .tw-contact-form-card .gform_wrapper button[type="submit"] {
    width: 100%;
  }

  .tw-contact-hero h1 {
    font-size: clamp(3.15rem, 15vw, 4.8rem);
  }

  .tw-contact-hero__lead {
    margin-top: 22px;
  }

  .tw-contact-quick {
    margin-top: 32px;
  }

  .tw-contact-quick__item {
    grid-template-columns: 82px 1fr;
    gap: 14px;
  }

  .tw-contact-details {
    padding: 70px 0;
  }

  .tw-contact-details__grid {
    gap: 42px;
  }

  .tw-contact-details__cards {
    grid-template-columns: 1fr;
  }

  .tw-contact-details__cards article,
  .tw-contact-details__cards article:nth-child(2n) {
    border-right: 0;
  }
}
/* =========================================================
   FORCE GRAVITY FORMS SUBMIT BUTTON TO TRIMWORKS BRAND
   ========================================================= */

.tw-contact-form-card .gform_wrapper input[type="submit"],
.tw-contact-form-card .gform_wrapper button[type="submit"],
.tw-contact-form-card .gform_wrapper .gform_button,
.tw-contact-form-card .gform_wrapper .gform_footer input[type="submit"],
.tw-contact-form-card .gform_wrapper .gform_footer button,
.tw-contact-form-card .gform_wrapper.gravity-theme .gform_footer input,
.tw-contact-form-card .gform_wrapper.gravity-theme .gform_footer button {
  appearance: none !important;
  -webkit-appearance: none !important;

  min-height: 56px !important;
  margin: 0 !important;
  padding: 0 34px !important;

  color: #ffffff !important;
  background: #e30620 !important;
  background-color: #e30620 !important;
  background-image: none !important;

  border: 0 !important;
  border-radius: 0 !important;

  font-family: "Oswald", Arial, sans-serif !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  letter-spacing: 0.07em !important;
  text-transform: uppercase !important;

  box-shadow: 0 10px 24px rgba(227, 6, 32, 0.18) !important;
  cursor: pointer !important;

  transition:
    background-color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease !important;
}

.tw-contact-form-card .gform_wrapper input[type="submit"]:hover,
.tw-contact-form-card .gform_wrapper button[type="submit"]:hover,
.tw-contact-form-card .gform_wrapper .gform_button:hover,
.tw-contact-form-card .gform_wrapper.gravity-theme .gform_footer input:hover,
.tw-contact-form-card .gform_wrapper.gravity-theme .gform_footer button:hover {
  color: #ffffff !important;
  background: #b90419 !important;
  background-color: #b90419 !important;
  background-image: none !important;

  transform: translateY(-2px);
  box-shadow: 0 14px 28px rgba(227, 6, 32, 0.24) !important;
}

.tw-contact-form-card .gform_wrapper input[type="submit"]:focus,
.tw-contact-form-card .gform_wrapper button[type="submit"]:focus,
.tw-contact-form-card .gform_wrapper .gform_button:focus {
  color: #ffffff !important;
  background: #e30620 !important;
  background-color: #e30620 !important;
  outline: 2px solid #061728 !important;
  outline-offset: 3px !important;
}

/* =========================================================
   CONTACT FORM — SELECT / DROPDOWN FIX
   ========================================================= */

.tw-contact-form-card .gform_wrapper .ginput_container_select {
  position: relative !important;
}

.tw-contact-form-card .gform_wrapper select,
.tw-contact-form-card .gform_wrapper .gfield_select {
  width: 100% !important;
  min-height: 54px !important;
  padding: 13px 48px 13px 15px !important;

  color: var(--twc-charcoal) !important;
  background-color: #f6f8fa !important;
  background-image: none !important;

  border: 1px solid #d9e0e6 !important;
  border-radius: 0 !important;
  box-shadow: none !important;

  font-family: var(--twc-body) !important;
  font-size: .96rem !important;
  line-height: 1.4 !important;

  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;

  cursor: pointer !important;

  transition:
    background-color .2s ease,
    border-color .2s ease,
    box-shadow .2s ease !important;
}

.tw-contact-form-card .gform_wrapper .ginput_container_select::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 18px;
  width: 9px;
  height: 9px;
  border-right: 2px solid var(--twc-navy);
  border-bottom: 2px solid var(--twc-navy);
  transform: translateY(-70%) rotate(45deg);
  pointer-events: none;
  z-index: 2;
}

.tw-contact-form-card .gform_wrapper select:hover,
.tw-contact-form-card .gform_wrapper .gfield_select:hover {
  background-color: #ffffff !important;
  background-image: none !important;
  border-color: #9aa4ad !important;
}

.tw-contact-form-card .gform_wrapper select:focus,
.tw-contact-form-card .gform_wrapper .gfield_select:focus {
  outline: none !important;
  background-color: #ffffff !important;
  background-image: none !important;
  border-color: var(--twc-navy) !important;
  box-shadow: 0 0 0 3px rgba(6, 23, 40, 0.07) !important;
}

.tw-contact-form-card .gform_wrapper select::-ms-expand {
  display: none;
}

