/* =============================================
   D. Barnes Excavating — Site Fixes
   ============================================= */

/* Smooth scroll */
html {
  scroll-behavior: smooth;
}

/* Sticky header — CSS fallback in case Elementor JS hasn't initialized */
header[data-elementor-type="header"] {
  position: sticky;
  top: 0;
  z-index: 9999;
  width: 100%;
}

/* Ensure sticky section fills full viewport width and overrides frozen inline styles */
header[data-elementor-type="header"] .elementor-sticky,
header[data-elementor-type="header"] > .elementor-section {
  position: sticky !important;
  top: 0 !important;
  width: 100% !important;
  left: 0 !important;
}

/* Hide the spacer clone that Elementor injects when header is frozen in sticky--active state */
header[data-elementor-type="header"] .elementor-sticky__spacer {
  display: none !important;
}

/* === "Areas We Work In" flyout submenu ===
   The nested sub-menu gets position:static from the mobile CSS rule (0,3,0).
   Override here with specificity 0,4,0 + !important to fly out right. */

/* Parent "Areas We Work In" link: flex so arrow stays inline after text */
.elementor-nav-menu--main .sub-menu .menu-item-has-children > a {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
}

.elementor-nav-menu--main .sub-menu .menu-item-has-children {
  position: relative !important;
}
.elementor-nav-menu--main .sub-menu .menu-item-has-children > .sub-menu {
  position: absolute !important;
  top: 0 !important;
  left: 100% !important;
  min-width: 200px !important;
  background: #ffffff !important;
  box-shadow: 4px 4px 14px rgba(0, 0, 0, 0.2) !important;
  padding: 4px 0 !important;
  list-style: none !important;
  margin: 0 !important;
}
.elementor-nav-menu--main .sub-menu .menu-item-has-children > .sub-menu li {
  display: block !important;
  width: 100% !important;
}
.elementor-nav-menu--main .sub-menu .menu-item-has-children > .sub-menu li a {
  color: #111111 !important;
  padding: 12px 20px !important;
  display: block !important;
  white-space: nowrap !important;
  background: transparent !important;
  text-decoration: none !important;
}
.elementor-nav-menu--main .sub-menu .menu-item-has-children > .sub-menu li a:hover {
  background: #957f4b !important;
  color: #ffffff !important;
}

/* Excavation Services — Terracing/Filling image height fix */
#terracing-filling .elementor-widget-image img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}

/* Demolition Services — image/text section image height fix */
.elementor-element-c27c2f1 img,
.elementor-element-2ae1c085 img,
.elementor-element-0f13156 img,
.elementor-element-307281d img,
.elementor-element-435318f0 img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}

/* Septic Services — image/text section image height fix */
.elementor-element-543222e img,
.elementor-element-999015d img,
.elementor-element-0244bc5 img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  display: block;
}

/* =============================================
   Form Styles
   ============================================= */

.gform_wrapper {
  font-family: "Roboto", sans-serif;
}

.gform_wrapper form {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gform_wrapper .gform_fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gform_wrapper .gfield--type-name {
  display: flex !important;
  gap: 12px;
}

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

.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper textarea {
  width: 100%;
  padding: 12px 16px;
  font-size: 15px;
  font-family: "Roboto", sans-serif;
  color: #111111;
  background: #ffffff;
  border: 1px solid #c5bfb3;
  border-radius: 4px;
  outline: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  box-sizing: border-box;
}

.gform_wrapper input[type="text"]:focus,
.gform_wrapper input[type="email"]:focus,
.gform_wrapper input[type="tel"]:focus,
.gform_wrapper textarea:focus {
  border-color: #957F4B;
  box-shadow: 0 0 0 3px rgba(149, 127, 75, 0.15);
}

.gform_wrapper input::placeholder,
.gform_wrapper textarea::placeholder {
  color: #999;
  font-size: 15px;
  font-family: "Roboto", sans-serif;
}

.gform_wrapper textarea {
  resize: vertical;
  min-height: 100px;
}

.gform_footer {
  margin-top: 16px !important;
  padding: 0 !important;
}

.gform_wrapper .gform_button {
  display: inline-block;
  padding: 14px 32px;
  font-size: 16px;
  font-weight: 600;
  font-family: "Roboto", sans-serif;
  color: #ffffff;
  background: #957F4B;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.1s ease;
  letter-spacing: 0.3px;
}

.gform_wrapper .gform_button:hover {
  background: #7a6839;
}

.gform_wrapper .gform_button:active {
  transform: scale(0.98);
}

.gform_wrapper .gform_button:disabled {
  background: #b0a68e;
  cursor: not-allowed;
}

/* Success/error messages */
.form-message {
  font-family: "Roboto", sans-serif;
  font-size: 14px;
  border-radius: 4px !important;
}

/* Mobile adjustments */
@media (max-width: 767px) {
  .gform_wrapper .gfield--type-name {
    flex-direction: column !important;
    gap: 12px;
  }

  .gform_wrapper input[type="text"],
  .gform_wrapper input[type="email"],
  .gform_wrapper input[type="tel"],
  .gform_wrapper textarea {
    padding: 11px 14px;
    font-size: 16px; /* Prevents iOS zoom on focus */
  }

  .gform_wrapper .gform_button {
    width: 100%;
    text-align: center;
  }
}
