/* 08 - J4T Contact / Free Estimate Form
 * v3.20.0 — homepage HTML contact design match
 */
.elementor-widget-j4t_free_estimate{
  --j4t-blue:#344f9d;
  --j4t-deep:#2f4d95;
  --j4t-text:#161616;
  --j4t-label:#2f3443;
  --j4t-line:#d7d9de;
  font-family:"Heebo",Arial,sans-serif;
}
.elementor-widget-j4t_free_estimate .elementor-widget-container{overflow:visible}

.j4t-contact{
  position:relative;
  width:100%;
  padding:28px 0;
  background:#fff;
  overflow:hidden;
}
.j4t-contact--full{
  width:100vw;
  max-width:100vw;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
}
.j4t-contact__shell{
  width:1280px;
  max-width:92%;
  margin:0 auto;
}
.j4t-contact__grid{
  display:grid;
  grid-template-columns:1.08fr 1fr;
  align-items:stretch;
  overflow:hidden;
  background:#fff;
  border:0 solid transparent;
  border-radius:0;
  box-shadow:0 8px 26px rgba(0,0,0,.09);
}

/* Left photo — same composition as the HTML contact section. */
.j4t-contact__media{
  position:relative;
  min-height:650px;
  overflow:hidden;
  background:#fff;
}
.j4t-contact__media::after{display:none!important}
.j4t-contact__media img{
  display:block;
  width:100%;
  height:100%;
  min-height:650px;
  object-fit:cover;
  object-position:center center;
}

/* Form — flat, compact, one-field-per-row layout from the HTML version. */
.j4t-contact__form{
  display:block;
  min-width:0;
  padding:40px 42px;
  background:#fff;
}
.j4t-contact__title{
  margin:0 0 12px;
  color:var(--j4t-text);
  font-family:"Rubik",Arial,sans-serif;
  font-size:30px;
  font-weight:600;
  line-height:1.18;
}
.j4t-contact__description{
  display:block;
  margin:0 0 24px;
  color:#5d6470;
  font-size:13px;
  line-height:1.55;
}
.j4t-contact__fields{
  display:grid;
  grid-template-columns:1fr;
  gap:16px;
}
.j4t-contact__label,
.elementor-widget-j4t_free_estimate .j4t-contact__label{
  display:block;
  margin:0;
  color:var(--j4t-label);
  font-family:"Heebo",Arial,sans-serif;
  font-size:13px;
  font-weight:400;
  line-height:1.45;
}
.j4t-contact__required{
  color:#e65f4a;
  font-style:normal;
}
.j4t-contact__input,
.j4t-contact__textarea{
  display:block;
  width:100%!important;
  max-width:100%;
  margin:7px 0 0!important;
  border:1px solid var(--j4t-line)!important;
  border-radius:3px!important;
  background:#fff!important;
  color:#161616!important;
  box-shadow:none!important;
  outline:0!important;
  font-family:"Heebo",Arial,sans-serif!important;
  font-size:13px!important;
  font-weight:400!important;
  line-height:1.5!important;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.j4t-contact__input{
  height:auto!important;
  min-height:44px!important;
  padding:11px 12px!important;
}
.j4t-contact__textarea{
  height:78px!important;
  min-height:78px!important;
  padding:11px 12px!important;
  resize:vertical;
}
.j4t-contact__input:focus,
.j4t-contact__textarea:focus{
  border-color:#9eb0db!important;
  box-shadow:0 0 0 2px rgba(52,79,157,.07)!important;
}
.j4t-contact__full{grid-column:auto}

/* Upload zone — same dashed box / arrow treatment as the source HTML. */
.j4t-contact__upload{
  position:relative;
  display:flex;
  width:100%;
  height:120px;
  min-height:120px;
  margin-top:7px;
  padding:14px;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  gap:3px;
  overflow:hidden;
  border:1px dashed #9eb0db;
  border-radius:3px;
  background:#fff;
  text-align:center;
  color:#3c5fa8;
  transition:border-color .2s ease,background .2s ease;
}
.j4t-contact__upload:hover{
  border-color:#6f8dce;
  background:#fbfcff;
}
.j4t-contact__file{
  position:absolute!important;
  inset:0!important;
  z-index:2;
  width:100%!important;
  height:100%!important;
  margin:0!important;
  padding:0!important;
  opacity:0!important;
  cursor:pointer!important;
}
.j4t-contact__upload-icon{
  display:block;
  width:auto;
  height:auto;
  color:#3c5fa8;
  background:transparent;
  border:0;
  border-radius:0;
  font-family:Arial,sans-serif;
  font-size:27px;
  font-weight:400;
  line-height:1;
}
.j4t-contact__upload-text{
  display:block;
  color:#3c5fa8;
  font-size:11px;
  font-weight:400;
  line-height:1.35;
  text-decoration:none;
}
.j4t-contact__upload-text::part(*){text-decoration:none}
.j4t-contact__file-name{
  display:block;
  max-width:100%;
  overflow:hidden;
  color:#7c8494;
  font-size:10px;
  font-weight:400;
  line-height:1.3;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Compact original-style button. */
.j4t-contact__submit{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:145px;
  min-height:0!important;
  margin:16px 0 0!important;
  padding:14px 14px!important;
  border:0!important;
  border-radius:2px!important;
  background:var(--j4t-blue,#344f9d)!important;
  color:#fff!important;
  box-shadow:none!important;
  font-family:"Rubik",Arial,sans-serif!important;
  font-size:10px!important;
  font-weight:600!important;
  line-height:1!important;
  letter-spacing:.15px!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  -webkit-appearance:none!important;
  appearance:none!important;
  cursor:pointer!important;
  transition:transform .2s ease,background .2s ease!important;
}
.j4t-contact__submit:hover{
  background:#2f4d95!important;
  color:#fff!important;
  transform:translateY(-2px);
}
.j4t-contact__submit:disabled{opacity:.65;cursor:wait;transform:none!important}

.j4t-contact__status{
  min-height:18px;
  margin-top:10px;
  font-size:12px;
  font-weight:600;
  line-height:1.45;
}
.j4t-contact__status.is-success{color:#137a44}
.j4t-contact__status.is-error{color:#b42318}
.j4t-contact__form.is-sending .j4t-contact__submit span{opacity:.55}
.j4t-contact__form.is-sending .j4t-contact__submit::after{
  content:"";
  width:12px;
  height:12px;
  margin-left:8px;
  border:2px solid rgba(255,255,255,.5);
  border-top-color:#fff;
  border-radius:50%;
  animation:j4tContactSpin .7s linear infinite;
}
@keyframes j4tContactSpin{to{transform:rotate(360deg)}}

/* Laptop */
@media(max-width:1366px){
  .j4t-contact__shell{width:90%;max-width:90%}
  .j4t-contact{padding:22px 0}
  .j4t-contact__media{min-height:590px}
  .j4t-contact__media img{min-height:590px}
}

/* Tablet */
@media(max-width:900px){
  .j4t-contact{padding:20px 0}
  .j4t-contact__shell{width:90%;max-width:90%}
  .j4t-contact__grid{grid-template-columns:1fr}
  .j4t-contact__media{min-height:0;height:auto;max-height:none}
  .j4t-contact__media img{
    width:100%;
    height:auto;
    min-height:0;
    max-height:none;
    object-fit:contain;
  }
  .j4t-contact__form{padding:32px 30px}
}

/* Mobile */
@media(max-width:767px){
  .j4t-contact{padding:18px 0 62px}
  .j4t-contact__shell{width:90%;max-width:90%}
  .j4t-contact__grid{border-radius:0}
  .j4t-contact__media,
  .j4t-contact__media img{
    width:100%;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
  }
  .j4t-contact__media img{object-fit:contain!important}
  .j4t-contact__form{padding:24px 20px}
  .j4t-contact__title{font-size:26px}
  .j4t-contact__description{font-size:13px;margin-bottom:20px}
  .j4t-contact__fields{grid-template-columns:1fr;gap:13px}
  .j4t-contact__label{font-size:13px}
  .j4t-contact__input,
  .j4t-contact__textarea{font-size:16px!important} /* prevent iOS zoom */
  .j4t-contact__upload{height:110px;min-height:110px}
  .j4t-contact__submit{width:100%!important;max-width:none!important}
}

/* Update 77: optional Google Map in the existing left media column. */
.j4t-contact__media--map{
  position:relative;
  min-width:0;
  min-height:var(--j4t-contact-map-min-height,650px);
  background:#ecf0f8;
}
.j4t-contact__map{
  display:block;
  position:absolute;
  inset:0;
  width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0;
  padding:0;
  border:0;
  background:#ecf0f8;
}
@media(max-width:1366px){
  .j4t-contact__media--map{min-height:var(--j4t-contact-map-min-height,590px)}
}
@media(max-width:900px){
  /* Preserve an actual map viewport when the columns stack. */
  .j4t-contact__media.j4t-contact__media--map{
    height:var(--j4t-contact-map-min-height,420px)!important;
    min-height:var(--j4t-contact-map-min-height,420px)!important;
  }
}
@media(max-width:767px){
  .j4t-contact__media.j4t-contact__media--map{
    height:var(--j4t-contact-map-min-height,320px)!important;
    min-height:var(--j4t-contact-map-min-height,320px)!important;
  }
}
