/* ==========================================================================
   Palo Blanco Builders — Site Fixes
   ========================================================================== */

/* Prevent horizontal overflow from Elementor full-width sections */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* Fix Elementor full-width process section — target by specific col classes only */
body .elementor-section.elementor-section-full_width > .elementor-container {
  max-width: 100% !important;
  width: 100% !important;
  flex-wrap: wrap !important;
  padding: 0 20px !important;
  box-sizing: border-box !important;
}

/* 5-column process layouts (col-20) */
body .elementor-section.elementor-section-full_width .elementor-col-20 {
  width: 20% !important;
  min-width: 0 !important;
  padding: 40px 24px !important;
  box-sizing: border-box !important;
  position: relative;
}

/* 6-column process layouts (col-16) */
body .elementor-section.elementor-section-full_width .elementor-col-16 {
  width: 16.66% !important;
  min-width: 0 !important;
  padding: 40px 18px !important;
  box-sizing: border-box !important;
  position: relative;
}

body .elementor-section.elementor-section-full_width .elementor-col-20 > .elementor-widget-wrap,
body .elementor-section.elementor-section-full_width .elementor-col-16 > .elementor-widget-wrap {
  padding: 0 !important;
}

body .elementor-section.elementor-section-full_width .elementor-col-20 h5,
body .elementor-section.elementor-section-full_width .elementor-col-16 h5 {
  font-size: 18px !important;
  margin: 0 0 12px !important;
  opacity: 0.6;
}

body .elementor-section.elementor-section-full_width .elementor-col-20 h3,
body .elementor-section.elementor-section-full_width .elementor-col-16 h3 {
  font-size: 17px !important;
  line-height: 1.3 !important;
  margin: 0 0 14px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: none;
}

body .elementor-section.elementor-section-full_width .elementor-col-20 .elementor-divider,
body .elementor-section.elementor-section-full_width .elementor-col-16 .elementor-divider {
  margin: 0 0 14px !important;
}

body .elementor-section.elementor-section-full_width .elementor-col-20 .elementor-widget-text-editor,
body .elementor-section.elementor-section-full_width .elementor-col-16 .elementor-widget-text-editor {
  font-size: 14px !important;
  line-height: 1.5 !important;
}

@media (max-width: 1024px) {
  body .elementor-section.elementor-section-full_width .elementor-col-20,
  body .elementor-section.elementor-section-full_width .elementor-col-16 {
    width: 50% !important;
    padding: 32px 24px !important;
  }
}

@media (max-width: 640px) {
  body .elementor-section.elementor-section-full_width .elementor-col-20,
  body .elementor-section.elementor-section-full_width .elementor-col-16 {
    width: 100% !important;
    padding: 28px 20px !important;
  }
}

/* Ensure content inside columns doesn't push out */
.elementor-widget-wrap {
  max-width: 100%;
  box-sizing: border-box;
}

.elementor-widget-container {
  max-width: 100%;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

.elementor-widget-container h3,
.elementor-widget-container h2 {
  word-wrap: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}

/* ==========================================================================
   Form Styling
   ========================================================================== */

.gform_wrapper {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
}

.gform_wrapper form {
  max-width: 100%;
  margin: 0;
}

.gform_wrapper .gform_body,
.gform_wrapper .gform-body {
  width: 100%;
}

.gform_wrapper .gform_fields {
  display: flex;
  flex-direction: column;
  gap: 14px;
  width: 100%;
  list-style: none;
  padding: 0;
  margin: 0;
}

.gform_wrapper .gfield {
  width: 100%;
  margin: 0;
  padding: 0;
}

.gform_wrapper input[type="text"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="email"],
.gform_wrapper textarea {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid #d8d8d8;
  border-radius: 6px;
  font-size: 16px;
  font-family: inherit;
  background: #ffffff;
  color: #213645;
  box-sizing: border-box;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  -webkit-appearance: none;
  appearance: none;
  line-height: 1.4;
}

.gform_wrapper input[type="text"]::placeholder,
.gform_wrapper input[type="tel"]::placeholder,
.gform_wrapper input[type="email"]::placeholder,
.gform_wrapper textarea::placeholder {
  color: #8b8b8b;
  opacity: 1;
}

.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper input[type="email"]:focus,
.gform_wrapper textarea:focus {
  outline: none;
  border-color: #D97B25;
  box-shadow: 0 0 0 3px rgba(217, 123, 37, 0.15);
}

.gform_wrapper textarea {
  resize: vertical;
  min-height: 130px;
  font-family: inherit;
}

.gform_wrapper .gform-footer,
.gform_wrapper .gform_footer {
  margin-top: 18px;
  padding: 0;
}

.gform_wrapper input[type="submit"].gform_button,
.gform_wrapper input[type="submit"].button {
  background: #D97B25;
  color: #ffffff !important;
  border: none;
  padding: 16px 36px;
  font-size: 15px;
  font-weight: 700;
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.1s ease;
  font-family: inherit;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  width: auto;
  display: inline-block;
  -webkit-appearance: none;
  appearance: none;
}

.gform_wrapper input[type="submit"].gform_button:hover,
.gform_wrapper input[type="submit"].button:hover {
  background: #b8651d;
}

.gform_wrapper input[type="submit"].gform_button:active {
  transform: translateY(1px);
}

.gform_wrapper input[type="submit"].gform_button:disabled {
  opacity: 0.7;
  cursor: not-allowed;
}

/* Name row — side-by-side first/last, stack on mobile */
.gform_wrapper .gfield--type-name {
  display: flex;
  gap: 10px;
}

.gform_wrapper .gfield--type-name > div {
  flex: 1;
  min-width: 0;
}

@media (max-width: 480px) {
  .gform_wrapper .gfield--type-name {
    flex-direction: column;
    gap: 14px;
  }
}

/* Form status message */
.form-message {
  font-size: 15px;
  line-height: 1.5;
}
