/* JS Roller Shutter - Contact & Quote forms */
.js-form { width: 100%; font-family: inherit; }
.js-form .js-row { display: flex; gap: 16px; }
.js-form .js-row > .js-field { flex: 1 1 0; min-width: 0; }
.js-form .js-field { margin-bottom: 16px; }
.js-form label { display: block; margin-bottom: 6px; font-size: 14px; font-weight: 600; color: #212121; }
.js-form label .req { color: #d93025; margin-left: 2px; }
.js-form input,
.js-form select,
.js-form textarea {
  display: block; width: 100%; box-sizing: border-box;
  padding: 12px 14px; font-size: 15px; line-height: 1.4;
  color: #212121; background: #F2F7FD;
  border: 1px solid transparent; border-radius: 4px;
  transition: border-color .2s, box-shadow .2s;
  -webkit-appearance: none; appearance: none;
}
.js-form select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23555' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; padding-right: 36px;
}
.js-form textarea { min-height: 130px; resize: vertical; }
.js-form input::placeholder, .js-form textarea::placeholder { color: #8a8f99; opacity: 1; }
.js-form input:focus, .js-form select:focus, .js-form textarea:focus {
  outline: none; background-color: #fff; border-color: #005BB4; box-shadow: 0 0 0 3px rgba(0, 91, 180, .18);
}
.js-form .js-field.has-error input,
.js-form .js-field.has-error select,
.js-form .js-field.has-error textarea { border-color: #d93025; }
.js-form .js-error { display: none; margin-top: 5px; font-size: 13px; color: #d93025; }
.js-form .js-field.has-error .js-error { display: block; }
.js-form .js-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.js-form .js-submit {
  display: inline-block; padding: 13px 34px; font-size: 15px; font-weight: 600;
  letter-spacing: .5px; text-transform: uppercase; color: #fff;
  background: #005BB4; border: 0; border-radius: 4px; cursor: pointer; transition: background .2s;
}
.js-form .js-submit:hover { background: #651C3A; }
.js-form .js-submit[disabled] { opacity: .65; cursor: wait; }
.js-form.js-form-center .js-actions { text-align: center; }
.js-form.js-form-dark-btn .js-submit { background: #000; }
.js-form.js-form-dark-btn .js-submit:hover { background: #651C3A; }
.js-form .js-status { display: none; margin-top: 16px; padding: 12px 14px; border-radius: 4px; font-size: 14px; }
.js-form .js-status.ok { display: block; background: #e6f4ea; color: #1e6b34; border: 1px solid #b7dfc2; }
.js-form .js-status.err { display: block; background: #fdecea; color: #a1271b; border: 1px solid #f5c2bd; }
@media (max-width: 600px) {
  .js-form .js-row { flex-direction: column; gap: 0; }
}

/* ---------- Page layout overrides ---------- */

/* Contact Us: white form panel, equal top/bottom padding */
.elementor-element.elementor-element-4be1ad5f > .elementor-widget-wrap { background-color: #fff !important; background-image: none !important; }
.elementor-element.elementor-element-4be1ad5f > .elementor-element-populated { padding: 50px !important; }

/* Contact Us: map stretches to the same height as the form */
.elementor-element.elementor-element-49ec68b6 > .elementor-container { align-items: stretch; }
.elementor-element.elementor-element-1b1e246 > .elementor-widget-wrap { height: 100%; align-content: stretch; }
.elementor-element.elementor-element-539443f,
.elementor-element.elementor-element-539443f > .elementor-widget-container,
.elementor-element.elementor-element-539443f .elementor-custom-embed { width: 100%; height: 100%; }
.elementor-element.elementor-element-539443f iframe { display: block; width: 100%; height: 100% !important; min-height: 450px; border: 0; }

/* Get a Quote: plain white form panel, equal padding, equal section spacing */
.elementor-element.elementor-element-48358a5 > .elementor-widget-wrap { background-color: #fff !important; background-image: none !important; }
.elementor-element.elementor-element-48358a5 > .elementor-element-populated { padding: 50px !important; }
.elementor-element.elementor-element-fc41716 { padding-top: 70px !important; padding-bottom: 70px !important; }

@media (max-width: 767px) {
  .elementor-element.elementor-element-4be1ad5f > .elementor-element-populated,
  .elementor-element.elementor-element-48358a5 > .elementor-element-populated { padding: 30px !important; }
  .elementor-element.elementor-element-539443f iframe { min-height: 350px; }
  .elementor-element.elementor-element-fc41716 { padding-top: 40px !important; padding-bottom: 40px !important; }
}
